我遇到了一个问题,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() 方法时,hibernate 都会抛出“没有会话或会话已关闭”错误,这是有道理的,因为我的事务已经从我的服务提交。
谢谢!