es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contador Spring JPA donde agrupar por.

Quiero transformar una consulta SQL en JPA.

SELECT status, count(*)
FROM abc
WHERE type=’XXX’
GROUP BY status

Necesito algo en un JPARepository con SQL.

@Repository
public interface ABCRepository extends JpaRepository<abc, long=””> {

long countByStatusAndType(final A type, final B status);
}

¿Es posible?</abc,>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    No, es posible transformar directamente la consulta SQL dada en un método de JPARepository con SQL. JPARepository utiliza JPQL (Java Persistence Query Language) para consultar la base de datos.

    Sin embargo, podemos lograr un resultado equivalente creando una consulta JPQL en la anotación @Query dentro de la interfaz JPARepository. Aquí hay un ejemplo:

    @Repository
    public interface ABCRepository extends JpaRepository<abc, long=""> {
    
       @Query("SELECT a.status, count(a) FROM abc a WHERE a.type=:type GROUP BY a.status")
       List<object[]> getStatusCount(@Param("type") String type);
    }
    

    En este ejemplo, utilizamos la sintaxis JPQL en la anotación @Query para realizar la consulta equivalente a la declaración SQL dada. También agregamos un parámetro type para minimizar el riesgo de inyección SQL.

    El resultado es una List<object[]> que contiene los valores de status y count agrupados por status.</object[]></object[]></abc,>

Comments are closed.