Spring Data JPA有没有办法使用方法名称解析来计算entites?
2022-08-31 06:58:20
Spring Data JPA支持使用规范对实体进行计数。但是,它是否有任何方法可以使用方法名称解析来计算实体?假设我想要一个方法来计算具有特定名称的实体,就像一个获取具有特定名称的所有实体的方法一样。countByName
findByName
Spring Data JPA支持使用规范对实体进行计数。但是,它是否有任何方法可以使用方法名称解析来计算实体?假设我想要一个方法来计算具有特定名称的实体,就像一个获取具有特定名称的所有实体的方法一样。countByName
findByName
从Spring Data 1.7.1.RELEASE开始,你可以用两种不同的方式做到这一点,
public interface UserRepository extends CrudRepository<User, Integer> {
long countByName(String name);
}
@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);
}
也检查这个所以答案。
只要不使用 1.4 版本,就可以使用显式注释:
例:
@Query("select count(e) from Product e where e.area.code = ?1")
long countByAreaCode(String code);