我正在將我的實體轉換爲DTO,並且我想將NULL設置爲所有字段的DTO值,這是所有字段的延遲加載和未初始化(因爲我不想一直傳輸所有數據)。Java/Hibernate:如果字段是延遲加載代理而不是實際數據,如何檢測?
我已經試過:
if (!(entity.getNationality() instanceof HibernateProxy))
this.setNationalityFromEntity(entity.getNationality());
但它沒有似乎幫助。 歡迎任何建議!
謝謝!
這基本上是'Hibernate.isInitialized(..)'做的,但是更大程度上。但是,是的,它指出了我的正確方向,並且通過進一步研究惰性實例,我發現實體不得在開放會話中正確指示初始化狀態。我找到的最簡單的解決方案是調用'Session.evict(..)',然後'Hibernate.isInitialized()'按預期工作。 – 2013-04-09 00:52:49