Мне интересно, почему есть некоторые различия между этим 2 подходом при отложенной загрузке (потому что я ожидал того же самого результата), оба подхода с lazy = true и fetch = "select"
Подход № 1
Session miasession = HibernateUtil.getSessionFactory().getCurrentSession();
Invoice i = (Invoice) miasession.get(Invoice.class, id);
//the Subject entity is Many to One relation
model.addAttribute("subject", i.getSubject());
В этом подходе я получаю ошибку, когда пытаюсь получить доступ к «субъекту», и ошибка «org.hibernate.LazyInitializationException: не удалось инициализировать прокси - нетСессия "(это трассировка стека https://pastebin.com/3fdDKCV0)
Подход № 2
Session miasession = HibernateUtil.getSessionFactory().getCurrentSession();
Invoice i = (Invoice) miasession.get(Invoice.class, id);
Subject s = (Subject) miasession.get(Subject.class, i.getSubject().getId());
//the Subject entity is Many to One relation
model.addAttribute("subject", s);
этот работает, но я точно не знаюпочему предыдущий подход не работает
PS: это немного псевдокода, транзакции обрабатываются вне этого метода, я сообщил только какой-то фрагмент кода, чтобы показать проблему:)