У меня проблема, когда JPA пытается лениво загрузить мои данные, когда я этого не хочу. По сути дела, я использую Сервис для извлечения некоторых данных, и когда я перехожу к анализу этих данных в JSON, библиотека JSON запускает спящий режим, чтобы попытаться лениво загрузить данные. Есть ли способ остановить это? Я привел пример ниже.JPA2/Hibernate - остановить ленивую загрузку?
// 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, чтобы не пытаться и лениво загружать данные?
UPDATE: Я понимаю, что вы можете использовать FetchType.EAGER - но что, если я не хочу загружать эти данные? Я просто хочу остановить спящий режим от попытки получить больше данных - у меня уже есть данные, которые я хочу. Прямо сейчас, когда я пытаюсь получить доступ к методу get(), hibernate вызовет ошибку «no session или session is closed», что имеет смысл, поскольку моя транзакция уже была совершена с моей службы.
Спасибо!
Не могли бы вы рассказать подробнее о своем вопросе: хотите ли вы полностью переключиться с ленивой загрузки на желаемую загрузку или не хотите ленивать загрузку сотрудников в этом конкретном случае и почему. – gabuzo
Моя проблема в том, что я не хочу лениво загружать данные. Конечно, я мог бы отметить это для загрузки EAGER - но что, если я сейчас даже не забочусь об этих данных? Например, если у меня есть Сотрудник, у которого много позиций, но я не хочу этих данных, потому что он слишком подробен для представления, которое я хочу отобразить, как я могу сказать, что JPA не пытается и не извлекает эти данные? –
Попробуйте это: http://stackoverflow.com/questions/4802887/gson-how-to-exclude-specific-fields-from-serialization-without-annotations –