166 votes

Est-ce que Spring Data JPA a un moyen de compter les droits en utilisant la résolution de nom de méthode ?

Spring Data JPA prend en charge le comptage d'entités à l'aide de spécifications. Mais a-t-il un moyen de compter les entités en utilisant la résolution de nom de méthode ? Disons que je veux une méthode countByName pour compter les entités avec un nom spécifique, tout comme une méthode findByName pour récupérer toutes les entités avec un nom spécifique.

32voto

Roman Points 296

Tant que vous n'utilisez pas la version 1.4, vous pouvez utiliser une annotation explicite :

exemple :

@Query("select count(e) from Product e where e.area.code = ?1")
long countByAreaCode(String code);

18voto

Leo Holanda Points 755

JpaRepository étend également QueryByExampleExecutor. Vous n'avez donc même pas besoin de définir des méthodes personnalisées sur votre interface :

public interface UserRepository extends JpaRepository<User, Long> {
    // no need of custom method
}

Et puis interrogez comme :

User probe = new User();
u.setName = "John";
long count = repo.count(Example.of(probe));

13voto

Sagar Misal Points 135

Exemple pratique

@Repository
public interface TenantRepository extends JpaRepository< Tenant, Long > {
    List<Tenant>findByTenantName(String tenantName,Pageable pageRequest);
    long countByTenantName(String tenantName);
}

Appel de la couche DAO

@Override
public long countByTenantName(String tenantName) {
    return repository.countByTenantName(tenantName);
}

11voto

Abel Pastur Points 1120

Cette fonctionnalité a été ajoutée dans la version 1.4 M1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X