【问题标题】:spring-data specifications - return list of ids instead of objectsspring-data 规范 - 返回 id 列表而不是对象
【发布时间】:2012-12-20 13:40:48
【问题描述】:

我希望获取所有订阅用户的所有 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


    【解决方案1】:

    据我所知,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();
    

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 2020-07-17
      • 2019-08-21
      • 2018-12-18
      • 1970-01-01
      • 2017-11-10
      • 2021-09-18
      • 1970-01-01
      • 2021-07-05
      相关资源
      最近更新 更多