如何让 JPA 和 JPQL 将完整的连接查询传递给 RDBMS?例如,
SELECT e
FROM Employee e
WHERE a.runkey = e.runkey
AND e.middle = 'M'
AND a.state = 'MA'
使用以下 Employee 类
@Entity
public class Employee implements Serializable {
blah ... blah
@OneToOne
@JoinColumn(
name = "runkey",
referencedColumnName = "runkey",
insertable=false, updatable=false)
private Address address;
}
和 JPQL,
SELECT e
FROM Employee e
INNER JOIN FETCH e.address AS a
WHERE a.state = :state
AND e.middle = :middle
我能够让 Hibernate JPA 按预期提取数据。
但是,eclipselink 抱怨它无法遍历关联的字段“地址”。
如果是这样,那么我应该如何设计 Employee 实体以及我应该如何使用 JPQL 来让 eclipselink 在两个表上执行带有 WHERE 过滤器的表连接?
(咆哮:否则Eclipselink JPA并不比JDO好!!!)
~
进一步编辑:这篇文章对我的情况有什么意义....
https://forums.oracle.com/forums/thread.jspa?threadID=1568659