Почему загруженные отношения Lazy не устанавливаются автоматически для двунаправленного доступа - PullRequest
0 голосов
/ 28 января 2020

У меня есть иерархия объектов, в которой коллекции загружаются лениво:

Object_1
    - List<Object_2>
        - Object_3
            - Object_4

Следовательно, с точки зрения Object_4 это выглядит так:

- Object_4
    - List<Object_3>
        - List<Object_2>
            Object_1

Объекты инициализируются следующим образом:

Object_1 object1 = em.find(...);
object1.getObjects2().forEach(o2 -> o2.getObjects3().size());

Если я сейчас сделаю следующее, в последней строке будет сгенерировано исключение LazyInitializationException:

Object_2 object2 = object1.getObjects2().get(0);
Object_3 object3 = object2.getObject3();
Object_4 object4 = object3.getObject4();
em.getTransaction().commit();

Object_3 object3_1 = object4.getObjects3().get(0);

Я бы предположил, что фреймворк должен иметь возможность заполнил Список объектов_3 объектами, загруженными в строке 2, потому что их непосредственное отношение к объекту 4 было решено с нетерпением.

Итак, возможно ли это, и я, например, пропускаю какую-то конфигурацию? Я что-то упустил и мое предположение неверно? Или это просто так не реализовано?

...