[英]Handling multi-layer many-to-many relationship in Hibernate
我有三個實體:
每個User
都有多個Roles
,每個Role
具有多個Right
。 類的定義如下:
@Entity
@Table(name="...")
public class User {
...
@ManyToMany
@JoinTable(...)
private List<Role> UserRoles;
}
...
@Entity
@Table(name="...")
public class Role{
...
@ManyToMany
@JoinTable(...)
private List<Right> RoleRights;
}
我要執行以下兩個任務:
目前,我已經通過以下方式實現了(1):
// some method in the data access layer
public List<User> GetUser(){
...
userList = (List<User>) someHibernateCriteria.list();
if(userList != null && userList.size() > 0)
{
for(User user : userList)
{
Hibernate.initialize(user.getUserRoles());
for(Role role : user.getUserRoles())
{
Hibernate.initialize(role.getRoleRights());
}
}
}
return userList;
}
...
顯示jsp
代碼,循環userList
並將每個user
放在html table row
<td>
${user.stringDescription}
</td>
<td>
<ul>
<c:forEach items="${user.userRoles}" var="role">
<c:forEach items="${role.roleRights}" var="right">
<li>${right.stringDescription}</li>
</c:forEach>
</c:forEach>
</ul>
</td>
而且我也類似地做(2),即填充中間的角色列表以獲取用戶和權限之間的關系。 我想知道這是一個好習慣還是有一種更有效的方法來完成任務。
是的,Spring Security中已經實現了邏輯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.