私はこのようなエンティティを持っています:
public class Configuration {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
@Element(name = "user_id", data = true, required = false)
private Users users;
}
私が望むのは、LazyLoading が実行されるクエリと実行されないクエリを定義することです。
しかし、クエリ:
@NamedQuery(name = "getNondeletedConfiguration", query = "SELECT c FROM Configuration c "
+ "LEFT JOIN c.users users WHERE c.deleted = false"),
ユーザーをオブジェクトにロードしません。
ユーザー オブジェクトを強制的にロードする方法は、コード内のどこかで属性にアクセスすることです。ただし、これは機能していません。この動作は望ましくありません。JPQL ステートメントのみに基づいて遅延読み込みを制御したいと考えています。Javaコードのどこかでgetメソッドを介したアクセスを検出するため、openJPAに魔法のようにオブジェクトをロードさせたくありません。
これはよくある問題だと思いますが、何かを誤解しているだけです。ただし、問題に関するドキュメントが見つかりません。