簡體   English   中英

NullPointerException與Hibernate FETCH JOIN

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM