这是关于提取文档的查询。该文件有两种邀请类型。休眠查询
->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