У меня есть служба, которая получает объект JPA из внешнего кода. В этой службе я хотел бы выполнить итерацию по лениво загруженной коллекции, которая является атрибутом этого объекта, чтобы увидеть, добавил ли клиент что-то к ней относительно текущей версии в БД.
Однако клиент, возможно, никогда не касался коллекции, поэтому он все еще не инициализирован. Это приводит к хорошо известному
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.example.SomeEntity.
Конечно, если клиент никогда не касался коллекции, мой сервис не должен проверять его на предмет возможных изменений. Дело в том, что я не могу найти способ проверить, инициализирована ли коллекция или нет. Наверное, я мог бы называть size()
на нем, и если он выбрасывает LazyInitializationException
, я бы знал, но я стараюсь не зависеть от таких шаблонов.
Есть ли какой-нибудь метод isInitialized()
?