我有兩個班級,分別是A
和B
。
A
有一組B
作爲其屬性。 B
對A
不理解。
HQL無法理解一個班級的屬性,這是另一個班級的集合
Class A {
@OneToMany(fetch=FetchType.LAZY)
@JoinTable(name = "A_B_MAPPING", joinColumns = @JoinColumn(name = "A_ID") , inverseJoinColumns = @JoinColumn(name = "B_ID"))
private Set<B> bs;
}
問題是,當我想刪除不具有B
的A
這些記錄,HQL不理解!我的代碼是這樣的:
String hql = "DELETE FROM A WHERE bs IS NULL";
Query query = getSession().createQuery(hql);
query.executeUpdate(); // <-- Here an exception is thrown
當它看來,HQL是無法理解,這家酒店是不是一個列,它必須加入到A_B_MAPPING
。
我也注意到,生成的查詢是指這個bs
屬性
爲non-qualified-property-ref
!
所以問題是,我如何修改我的查詢來實現我的目標?
當你調用'executeUpdate()'方法時,你可以給你的問題添加異常的整個堆棧跟蹤嗎? – eternay