以下查询的等效JPA CriteriaBuilder是什么?

问题描述 投票:0回答:1

JPA2条件构建器查询以下什么?

Select * from Transaction t1 
where t1.version = (
    select max(t2.version)
    from Transaction t2
    where t1.id=t2.id
)
spring jpa jpa-2.0 criteria-api
1个回答
0
投票

类似的东西:

CriteriaQuery<Transaction> query = cb.createQuery(Transaction.class);
Root<Transaction> t1 = query.from(Transaction.class);

Subquery<Integer> maxVersion = query.subquery(Integer.class);
Root<Transaction> t2 = maxVersion.from(Transaction.class);
maxVersion.where(cb.eq(t1.get(Transaction_.id), t2.get(Transaction._id));
maxVersion.select(cb.max(t2.get(Transaction_.version));

query.where(cb.eq(t1.get(Transaction_.version), maxVersion));
query.select(t1);
© www.soinside.com 2019 - 2024. All rights reserved.