1
私が作成したこの例のSQLクエリは、オブジェクトを持つすべてのREPORT
オブジェクトを現在のユーザも持っています。だから、グループにレポートを結びつける多くのグループがあり、ユーザーは多数のグループを持つことができます。そのうちの1つは、ユーザーがレポートを表示できるように一致する必要があります。2つのリストがHibernateでオブジェクトを共有しているかどうかを調べる方法
Query reportQuery = entityManager.createQuery
("select distinct rep from Report rep
join rep.reportPermissions per
join per.userGroups gr
join gr.users u
where u.id = :userId and rep.type = 'GENERAL'");
reportQuery.setParameter("userId" , user.getId());
例マッピング(HQLで使用されている名称、およびマッピングに名前をfileds):
私はそれのようなものでなければなりませんちょうどSELECT * FROM REPORT r
JOIN REPORT_PERMISSION rp
on r.id = rp.report_id and rp.user_group_id in
(SELECT l.user_group_id FROM USER_GROUP_LINK l where l.user_id = 2)
where r.type = 'GENERAL';