這是關於提取文檔的查詢。該文件有兩種邀請類型。休眠查詢
->OPEN : View all user
->LIMITED : Show to limited user
Hibernate映射是如下:
<list name="invitedUsers" cascade="refresh" table="document_user_map">
<key column="document_id"/>
<index column="position" type="integer"/>
<many-to-many class="com.v4common.shared.beans.usermanagement.User" column="user_id"/>
</list>
<property name="invitationType" column="invitation_type"
type="com.resources.userenum.UserEnumInvitationType" />
用戶可以參與僅是開放的,得到了有限的類型邀請這些文件。
我可以預計到下面的查詢結果:
SELECT * FROM文件左外連接document_user_map上document.id = document_user_map.document_id和document_user_map.user_id = 648
而是通過冬眠,我在方法中添加了下面的標準,但只得到有限的招標而不是其他。
criteria.createAlias(「invitedUsers」,「invitedUser」); criteria.add(Restrictions.or(Restrictions.ne(「invitationType」,InvitationType.LIMITED),Restrictions.or( Restrictions.and(Restrictions.eq(「invitationType」,InvitationType.LIMITED),Restrictions.eq(「invitedUser。 id「,user.getId())),Restrictions.isNull(」invitedUsers「))));
任何人都可以幫助我,我錯了。
編輯: 用戶ID 1應該得到的只是文件1,2,但不是3,而是通過這個標準,我沒有得到的docID 1.
表結構:證件
id name invitation type userid
-----------------------------
1 doc1 open 1
2 doc2 LIMITED 1
3 doc3 LIMITED 2
有限公司doc用戶條目:document_user_map
document_id user_id position
---------------------------
2 1 0
3 2 0
它很不清楚你在這裏期待什麼。 – taxeeta
@taxeeta編輯問題..我知道任何查詢。 – iMBMT