有两表Dept(单位)和Permission(权限),由hibernate维持多对多的关系
Dept
private Set<Permission> permissions;
<set name="permissions" lazy="true" cascade="none" table="dept_permission" outer-join="false">
<key column="permissions_id"/>
<many-to-many class="com.gdcy.bean.Permission" column="dept_id"/>
</set>
Permission
private Set<Dept> depts;
<set name="depts" lazy="true" cascade="none" table="dept_permissions" outer-join="false">
<key column="depts_id"/>
<many-to-many class="com.gdcy.bean.Dept" column="permission_id"/>
</set>
查询具备某个权限的所有单位(关键,使用in elements)
select t from Dept t,Permission p where p.remark='权限' and p.id in elements(t.permissions)