我有三个实体:
每个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)也是如此,即填充中间的角色列表以获取用户和权利之间的关系。我想知道这是一个好的做法,还是有更有效的方法来完成任务。
答案 0 :(得分:0)
是的,逻辑已经在Spring Security中实现了