uoa-validator-api/src/main/java/eu/dnetlib/validatorapi/repositories/ValidationResultRepository....

29 lines
1.3 KiB
Java

package eu.dnetlib.validatorapi.repositories;
import eu.dnetlib.validatorapi.entities.SummaryResult;
import eu.dnetlib.validatorapi.entities.ValidationRuleResult;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ValidationResultRepository extends JpaRepository<ValidationRuleResult, Long> {
@Query(value =
"SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight," +
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passed_records, " +
"COUNT(CASE WHEN sr.status = 'FAILURE' THEN 1 END) AS failed_records) " +
"FROM ValidationRuleResult sr " + "WHERE sr.validationJobId = :id " +
"GROUP BY sr.ruleName, sr.ruleWeight")
List<SummaryResult> getSummaryResult(@Param("id") int validationJobId);
@Query("SELECT CASE WHEN COUNT(vr) > 0 THEN 'FAILURE' ELSE 'SUCCESS' END " +
"FROM ValidationRuleResult vr " +
"WHERE vr.validationJobId = :id AND vr.status = 'FAILURE'")
public String getStatus(@Param("id") int validationJobId);
}