Spring Data JPA支持使用规范对实体进行计数。但是,它有什么方法可以使用方法名称解析来计数实体?假设我要一种方法countByName来计算具有特定名称的实体,就像findByName获取所有具有特定名称的实体的方法一样。
countByName
findByName
从Spring Data 1.7.1.RELEASE开始,你可以使用两种不同的方法来实现它,
1)新方法,对计数和删除查询都使用查询派生。例,
public interface UserRepository extends CrudRepository<User, Integer> { Long countByName(String name); }
2)旧方法,使用@Query注释。 例,
public interface UserRepository extends CrudRepository<User, Integer> { @Query("SELECT COUNT(u) FROM User u WHERE u.name=?1") Long aMethodNameOrSomething(String name); }
或也使用@Param注释,
public interface UserRepository extends CrudRepository<User, Integer> { @Query("SELECT COUNT(u) FROM User u WHERE u.name=:name") Long aMethodNameOrSomething(@Param("name") String name); }