現在、OneToMany/ManyToOne マッピングで問題が発生しています。マッピングは次のようになります。
public class A implements Serializable {
@EmbeddedId
private AId id;
// Other stuff...
}
@Embeddable
public class AId implements Serializable {
@ManyToOne
@JoinColumn(name = "B_ID", nullable = false)
private B b;
// Other stuff...
}
public class B implements Serializable {
@OneToMany(mappedBy = "id.b")
private List<A> as;
// Other stuff...
}
オブジェクト A を使用してオブジェクト B にアクセスしようとすると、すべて正常に機能しますが、逆方向はまったく機能しません。関係は常に null です。
A objectA = findAById(id);
B objectB = objectA.getB(); // OK
// But... for example
objectB.getAs(); // returns null
主キーを使用してオブジェクト B のすべての As を取得する小さなクエリを作成しました。
SELECT as FROM B b, IN(b.as) as WHERE b.id = :id
これは完全に機能し、期待される結果が得られます。DBに何が永続化されているかも確認しましたが、問題ありません。その関係が一方向にしか機能しない理由を誰かに手がかりはありますか?
よろしく、
アレックス