Spring Data JPA admite entidades de recuento que utilizan especificaciones. Pero, ¿tiene alguna forma de contar entidades usando la resolución de nombres de métodos? Digamos que quiero un método countByName
para contar entidades con un nombre específico, al igual que un método findByName
para obtener todas las entidades con un nombre específico.
java
spring
spring-data-jpa
YaoFeng
fuente
fuente
Respuestas:
A partir de Spring Data 1.7.1.RELEASE , puede hacerlo de dos maneras diferentes,
1) La nueva forma , utilizando derivación de consultas para contar y eliminar consultas. Lea esto (Ejemplo 5). Ejemplo,
2) A la antigua usanza , utilizando la anotación @Query.
Ejemplo,
o usando la anotación @Param también,
Comprueba también esto, así que responde .
fuente
Mientras no use la versión 1.4, puede usar anotaciones explícitas:
ejemplo:
fuente
long
lugar deint
, de lo contrario obtendrá una ClassCastException sin ninguna pistaJpaRepository también extiende QueryByExampleExecutor. Por lo tanto, ni siquiera necesita definir métodos personalizados en su interfaz:
Y luego consulta como:
fuente
int age
, se incluirá aunque no esté configurado, peroInteger age
se excluirá de la muestra (al menos en Eclipselink)Esta característica se ha agregado en la versión 1.4 M1
fuente
Ejemplo de trabajo
Llamando desde la capa DAO
fuente
Según Abel, después de la versión 1.4 (probada en la versión 1.4.3.RELEASE) es posible hacerlo de esta manera:
public long countByName (nombre de cadena);
fuente
Aparentemente se implementa ahora DATAJPA-231
fuente
¡Gracias a todos! Ahora es trabajo. DATAJPA-231
Sería bueno si fuera posible crear conteo ... Por ... métodos como encontrar ... Por unos. Ejemplo:
fuente
Según el problema DATAJPA-231, la función aún no está implementada.
fuente
Solo he estado trabajando con él durante algunas semanas, pero no creo que esto sea estrictamente posible, sin embargo, debería poder obtener el mismo efecto con un poco más de esfuerzo; solo escriba la consulta usted mismo y anote el nombre del método. Probablemente no sea mucho más simple que escribir el método usted mismo, pero en mi opinión es más limpio.
Editar: ahora es posible de acuerdo con DATAJPA-231
fuente
fuente
Si alguien quiere obtener el recuento basado en múltiples condiciones, aquí hay una consulta personalizada de muestra
fuente