[英]NullPointerException with Hibernate FETCH JOIN
在休眠查詢上執行list方法時,出現NullPointerException異常。 這是我的代碼:
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
String hql = "SELECT g FROM DeviceGroup g JOIN FETCH g.devices";
Query query = session.createQuery(hql);
List<DeviceGroup> list = query.list();
session.getTransaction().commit();
session.close();
return list;
關系的定義如下:
設備:
@ManyToOne
@JoinColumn
private DeviceGroup deviceGroup;
設備組:
@OneToMany(mappedBy = "deviceGroup")
private Set<Device> devices;
如果我省略了獲取聯接,則list方法會成功,但是延遲獲取會導致StackOverflowException。 我究竟做錯了什么?
嘗試在g.devices
上使用identifier d
,
SELECT g FROM DeviceGroup g JOIN FETCH g.devices d
我解決了問題。 我在導致無限循環的實體上執行了hashCode實現。 在這種情況下拋出NullPointerException還是很奇怪的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.