[英]Hibernate Criteria Query Join with Null Value
我有一個叫做角色的桌子。 每個角色可能屬於一個組織。 不屬於組織的角色的值為null。 我想查找特定組織的所有角色,或者組織在表中為空的位置。
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Role.class)
.add(Restrictions.or(
Restrictions.eq("organization",organization.getId()),
Restrictions.isNull("organization")));
Mapping文件具有:
<many-to-one class="com.myname.models.Organization" name="organization">
<column name="organization_id" precision="22" scale="0" />
</many-to-one>
當查詢運行時,我得到:
IllegalArgumentException occurred calling getter com.myname.models.Organization.id
我發現如果我修改標准只是在組織上查詢空值一切正常,但是一旦我查詢了一個值,我就會得到錯誤。
如何修改查詢或映射文件以滿足我的目標?
不確定你是否還在尋找答案,但正如我在尋找同一問題的解決方案時遇到過這個問題,我認為它可能對將來的參考有所幫助。
您需要按如下方式構建標准:
final Criterion lhs = Restrictions.eq("organization",organization.getId());
final Criterion rhs = Restrictions.isNull("organization");
Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Role.class).add(Restrictions.or(lhs, rhs));
IllegalArgumentException occurred calling getter com.myname.models.Organiation.id
這似乎暗示你在某處使用“組織”,這可能是“組織”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.