JPA と JPQL で完全な結合クエリを RDBMS に渡すにはどうすればよいですか? 例えば、
SELECT e
FROM Employee e
WHERE a.runkey = e.runkey
AND e.middle = 'M'
AND a.state = 'MA'
次の従業員クラスで
@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 は、関連付けられたフィールド「アドレス」をトラバースできないと叫びます。
もしそうなら、どのように従業員エンティティを設計し、eclipselink が両方のテーブルで WHERE フィルターを使用してテーブル結合を実行するために JPQL をどのように表現する必要がありますか?
(暴言:そうでなければ、Eclipselink JPAはJDOに勝るものはありません!!!)
〜
さらに編集:この投稿は私の場合に何か意味がありますか....
https://forums.oracle.com/forums/thread.jspa?threadID=1568659