ユーザーのオブジェクトが取り込まれるはずのページをリクエストしましたが、返されたページは空でした。
リクエストのコントローラー
@RequestMapping(value = "/main/user/testing", method = RequestMethod.GET)
public String getRecords(@RequestParam("userId") Integer userId, ModelMap
model) {
if(userId !=null)
{
UserEntity user = userService.getUserByID(userId);
model.addAttribute("setter", user);
}
return "/main/user/testing";
}
取得する親と関連する子のモデル
ユーザーエンティティ
public class UserEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "user_id")
private Integer userId;
@Column(name = "name")
private String name;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="checker_id")
private UserEntity checker;
@OneToMany(mappedBy="checker", orphanRemoval=true, cascade = CascadeType.ALL)
private Set<UserEntity> setters = new HashSet<UserEntity>();
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="setter")
private Set<Module> sModule = new HashSet<Module>();
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="checker")
private Set<Module> cModule = new HashSet<Module>();
モジュール
public class Module implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "module_id")
private Integer moduleId;
@Column(name = "module_code")
private String moduleCode;
@Column(name = "module_name")
private String moduleName;
したがって、コントローラーでユーザーIDをパラメーターとして使用すると、ユーザーに関連付けられたモジュールとともに返されます。
ページ自体は返されますが、テーブル ヘッダーのみで、データベースからの値はありません。
リクエストされたページ
<table>
<tr>
<th>User Id</th>
<th>Name</th>
<th>Module Code</th>
<th>Module Name</th>
</tr>
<c:forEach items="${setter}" var="obj" >
<c:forEach items="${obj.sModule}" var="module" >
<tr>
<td><c:out value="${obj.userId}" escapeXml="true" /></td>
<td><c:out value="${obj.name}" escapeXml="true" /></td>
<td><c:out value="${module.moduleCode}" escapeXml="true" /></td>
<td><c:out value="${module.moduleName}" escapeXml="true" /></td>
</tr>
</c:forEach>
</c:forEach>
</table>
これが起こっている理由はありますか?