我有两节课,比如说A
和B
。
A
有一组B
作为它的属性。B
不知道A
。
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;
}
问题是,当我想删除那些没有的记录时A
,B
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
!
所以问题是,我怎样才能修改我的查询来实现我的目标?