我有两个桌子。我已经在用户列表文件中成功引用了branch_id(用户表)和branch_id(分支表)。在我的分支控制器上,我想显示分支列表及其相应的管理器。我是新手,所以我不完全了解它的工作原理。
分支表
User.java
@Entity
@Table(name="user")
public class User {
/......
@ManyToOne()
@JoinColumn(name="branch_id", referencedColumnName = "branch_id",insertable=false, updatable=false)
private Branch branch;
public Branch getBranch() {
return branch;
}
public void setBranch(Branch branch) {
this.branch = branch;
}
}
Branch.java
@Entity
@Table(name="branch")
public class Branch {
/....
@OneToMany(targetEntity=User.class, mappedBy="branch",cascade=CascadeType.ALL, fetch = FetchType.LAZY)
private List<User> user;
public List<User> getUser() {
return user;
}
public void setUser(List<User> user) {
this.user = user;
}
}
我是否必须在branch_manager(branch_table)和id(user table)之间声明一对一的映射,还是可以使用多对一/一对多的映射? 我试图像这样在我的branch_list.jsp中调用相应的分支经理:
<c:forEach items="${branchList }" var="branch">
<tr>
<td>${branch.branch_name}</td>
<td>${branch.user.username}</td>
</tr>
</c:forEach>
但是当我包含“ branch.user.username”时,会给我错误。
非常感谢您。
答案 0 :(得分:0)
${branch.user.username}
显然会给出错误,因为您将其视为单个用户对象,但实际上是用户列表。
private List<User> user;
所以请尝试按以下方式获取。
${branch.user[0].username}
在这里您可以通过迭代用户列表来替换零。