Как проверить, инициализирована ли лениво загруженная коллекция JPA?

У меня есть служба, которая получает объект JPA из внешнего кода. В этой службе я хотел бы перебрать лениво загруженную коллекцию, которая является атрибутом этой сущности, чтобы увидеть, добавил ли клиент что-то к ней относительно текущей версии в базе данных.

Однако клиент, возможно, никогда не касался коллекцию, поэтому она еще не инициализирована. Это приводит к хорошо известному

org.hibernate.LazyInitializationException: не удалось лениво инициализировать коллекцию роли: com.example.SomeEntity.

Конечно, если клиент никогда не касался коллекции, моя служба не имеет чтобы проверить возможные изменения. Дело в том, что я не могу найти способ проверить, инициализирована ли коллекция или нет. Думаю, я мог бы вызвать для него size () , и если он выдаст LazyInitializationException , я бы знал, но я стараюсь не зависеть от таких шаблонов.

Есть ли isInitialized () где-то метод?

46
задан Andremoniy 13 July 2016 в 09:05
поделиться