【发布时间】:2013-02-04 16:43:46
【问题描述】:
我有三张桌子
Project
id, name
ProjectAuthorization
id, project_id, user_id , permission
User
id, name
项目.java
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL)
private List<ProjectAuthorization> permissions;
用户.java
@OneToMany(mappedBy = "user",cascade =CascadeType.ALL)
private List<ProjectAuthorization> permissions;
ProjectAuthorization.java
@ManyToOne()
private Project project;
@ManyToOne()
private User user;
我想获取当前用户没有任何权限的所有项目,如何通过hibernate查询编写?
更新
hql 像这样:
select p from Project as p left join p.permissions as pa where pa.user.id!=:userid and p.id not in (select pa2.project.id from ProjectAuthorization as pa2 where pa2.user.id=:userid)");
【问题讨论】:
-
这些表之间有关联映射吗?
-
是的,项目有OneToMany权限,用户也有OneToMany权限
-
让我们看看它们的映射关系