例如,我的实体User
包含字段id
,active
和另外10个字段。
我如何获得所有活跃的用户?易:
public interface UserRepository extends JpaRepository<User, Integer> {
List<User> findAllByActiveTrue();
}
如何加载id
活跃用户列表?我需要一个@Query
注释来自己编写JPQL,如下所示:
public interface UserRepository extends JpaRepository<User, Integer> {
@Query("select u.id from User u where u.active = true")
List<Integer> fetchActiveUsersIds();
}
我的问题是:我可以用某种方式命名一种避免自己编写JQPL的方法,就像第一种情况一样吗?
更新
我需要这样的东西:
public interface UserRepository extends JpaRepository<User, Integer> {
List<Integer> findAll_Id_ByActiveTrue();
}
答案 0 :(得分:0)
我认为这是不可能的。 Repository
的主要目的是管理域类的持久性。它不会独立管理属性。在Spring Data Repositories documentation中,您可以找到CrudRepository
可用方法的列表。
您可以使用property extensions撰写查询,但它始终会返回非聚合方法的域类。
对于您提及的特定用例,您需要使用@Query
注释。