-1
我有三個表如何寫一個HQL來獲取所有記錄,沒有權限
Project
id, name
ProjectAuthorization
id, project_id, user_id , permission
User
id, name
Project.java
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL)
private List<ProjectAuthorization> permissions;
User.java
@OneToMany(mappedBy = "user",cascade =CascadeType.ALL)
private List<ProjectAuthorization> permissions;
ProjectAuthorization.java
@ManyToOne()
private Project project;
@ManyToOne()
private User user;
我想獲得所有的項目,沒有任何權限的當前用戶,如何通過休眠查詢寫它?
更新
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權限 – atu0830
讓我們看看他們的映射 –