我正在寻找所有订阅用户的所有 ID。这是我的谓词:
public static Specification<User> userSubscribed(){
return new Specification<User>() {
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
return builder.equal(root.get("status"), 1 /* 1 = subscribed */);
}
};
}
但是,我的存储库仅允许 count、findAll 和 findOne。有没有办法让它返回某个字段的列表?
请您参考如下方法:
据我所知,Spring-Data 还不支持这一点。阅读response from Oliver Gierke关于相关问题。那里提到的那些问题仍然悬而未决。
作为替代方案,您可以创建 custom repository并使用 TypedQuery 来实现你想要的。 以下是 TypedQuery 的一些示例: http://www.objectdb.com/java/jpa/query/jpql/select
TypedQuery 示例:
TypedQuery<Integer> query = em.createQuery(
"SELECT u.id FROM User AS u", Integer.class);
// ... Some predicates
List<Integer> results = query.getResultList();