这是关于获取文档的查询 . 该文档有两种邀请类型 .
->OPEN : View all user
->LIMITED : Show to limited user
hibernate映射如下:
type="com.resources.userenum.UserEnumInvitationType" />
User can participate only those documents which are open and got invitation for limited type.
我可以通过以下查询得到预期的结果:
select * from document left outer join document_user_map on document.id = document_user_map.document_id and document_user_map.user_id = 648
但是通过hibernate,我在方法中添加了以下标准,但只获得了有限的投标而不是其他标准 .
criteria.createAlias(“inviteUsers”,“inviteUser”); criteria.add(Restrictions.or(Restrictions.ne(“invitationType”,InvitationType.LIMITED),Restrictions.or(Restrictions.and(Restrictions.eq(“invitationType”,InvitationType.LIMITED),Restrictions.eq(“inviteUser.id” “,user.getId())),Restrictions.isNull(”inviteUsers“))));
任何人都可以帮助我,我错了 .
Edit: 用户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