4

サブスクライブしているすべてのユーザーのすべての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のみが許可されています。特定のフィールドのリストを返すようにする方法はありますか?

4

1 に答える 1

4

私の知る限り、これは Spring-Data ではまだサポートされていません。関連する質問に対するOliver Gierke からの回答を読んでください。そして、そこで言及された問題はまだ未解決です。

別の方法として、カスタム リポジトリを作成し、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();
于 2012-12-20T14:15:42.157 に答える