0

我正在使用 JPA 2.0、Hibernate 4.1.0.Final 和 Spring 3.1.1.RELEASE。如何编写将两个表连接到非主键列上的 JPA 连接?我有两个实体,Link 和 Training,都有一个 orderId 字段,但我不知道如何编写 Join 表达式。通常,我可以写

Root<Link>root=criteriaQuery.from(Link.class);
...
Join<Link, Training> link = root.join("trainingId");

但是,这假定表是通过主键链接的,但事实并非如此。

4

1 回答 1

0

与 JPQL 一样,您需要多个 FROM 实体

Root<Link> rootLink = criteriaQuery.from(Link.class);
Root<Training> rootTraining = criteriaQuery.from(Training.class);
...
criteriaQuery.where(criteriaBuilder.equal(rootLink.get(link_.linkAttribute), trainingLink.get(training_.trainingAttribute)));
于 2013-06-13T21:07:48.190 回答