Используя свойство сеанса defaultReadOnly, вы можете указать, какие коллекции будут доступны только для чтения и записи, а другие только для чтения?
Указанные ниже коллекции будут помечены как FetchType.Lazy
Код нижеиспользование одного менеджера сущностей.
Customer c = em.find(1, Customer.class):
Session s = em.unwrap(Session.class):
s.setDefaultReadOnly(true):
Загрузка отложенной коллекции, но только для чтения, чтобы сущности не добавлялись в контекст постоянства для экономии ресурсов.
c.getEmails().size();
session.setDefaultReadOnly(false):
Загрузка другой коллекции, но чтение-записать.
c.getPhones().size();