簡體   English   中英

Hibernate Criteria Query加入Null Value

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

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