JPA が必要のないときにデータを遅延ロードしようとしているという問題があります。基本的に何が起こっているかというと、サービスを使用してデータを取得していて、そのデータを JSON に解析しようとすると、JSON ライブラリが休止状態をトリガーして、データを遅延ロードしようとします。これを止める方法はありますか?以下に例を示しました。
// Web Controller method
public String getEmployeesByQuery(String query) {
Gson gson = new Gson();
List<Employee> employees = employeeService.findEmployeesByQuery(query);
// Here is where the problem is occurring - the gson.toJSON() method is (I imagine)
// using my getters to format the JSON output, which is triggering hibernate to
// try and lazily load my data...
return gson.toJSON(employees);
}
データを遅延ロードしようとしないように JPA/hibernate を設定することは可能ですか?
更新: FetchType.EAGER を使用できることはわかっていますが、そのデータを積極的にロードしたくない場合はどうすればよいでしょうか? 休止状態がより多くのデータを取得しようとするのを止めたいだけです-必要なデータは既にあります。現在、get() メソッドにアクセスしようとすると、休止状態で「セッションがないか、セッションが閉じられていません」というエラーがスローされます。これは、トランザクションがサービスから既にコミットされているためです。
ありがとう!