【发布时间】:2020-07-10 09:35:12
【问题描述】:
我有以下表格:
-
客户
-
订单
@Entity public class Customer { String id; } @Entity public class Order { String id; String customerId; }
我没有用在它们之间建立实体的映射;但是我需要一个查询来连接这两个表:
final CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
final CriteriaQuery<Customer> criteriaQuery = criteriaBuilder.createQuery(Customer.class);
final Root<Customer> root = criteriaQuery.from(Customer.class);
final Join<Order, Customer> joinOrder = root.join(Order_.customerId.getName()); // doesn't work
final TypedQuery<Customer> queryData = entityManager.createQuery(
criteriaQuery
.where(
criteriaBuilder.lessThan(root.get(Customer_.creationDate), date)
// should add a predicate with order properties
)
);
return queryData.getResultList();
是否可以使用 JPA 2 执行上述操作?
【问题讨论】:
-
完全正确。 Customer 和 Order 与 order.customerId 绑定,我想添加谓词 Order 实体
标签: java jpa criteriaquery