我是Java web的初学者。我使用spring4 mvc和mybatis作为图书管理系统。
mysql中的数据库bms中有两个表 t_book 和 t_type 。
这是图书实体:
public class Book {
private Long bookNum;
private String bookName;
private String writer;
private String callNumber;
private BigDecimal price;
private String pubCompany;
private Date pubDate;
private Long totalNum;
private Long currentNum;
private String brief;
private Type type; // the associated class
// getter and setter
}
这是类型实体:
public class Type {
private Long sortId;
private String sortName;
// getter and setter
}
但是在bookDetail.jsp中,页面可以显示$ {book.bookName},$ {book.writer},$ {book.pubDate}等的值,但是< strong>无法显示 $ {book.type.sortName} 的值。
这是bookDetail.jsp的一部分:
<table class="table table-bordered table-striped">
<tr>
<th>Book ID</th>
<td>${book.bookNum}</td>
</tr>
<tr>
<th>Book name</th>
<td>${book.bookName}</td>
</tr>
<tr>
<th>Book writer</th>
<td>${book.writer}</td>
</tr>
<tr>
<th>callNumber</th>
<td>${book.callNumber}</td>
</tr>
<tr>
<th>sort</th>
<td>${book.type.sortName}</td>
</tr>
<tr>
<th>publish Date</th>
<td><fmt:formatDate value="${book.pubDate}" pattern="yyyy-MM-dd"/></td>
</tr>
</table>
为什么我无法通过.jsp中的$ {book.type.sortName}获取关联数据的值?我怎么能得到它?
请帮忙! 提前谢谢!
答案 0 :(得分:0)
您可能正在将模型检索为Lazy,因此您只有第一部分没有关联值而只是参考,您可以检查是否只放了$ {book.type}为您提供仅限类型的参考。
答案 1 :(得分:0)
在sql mapping xml中,将属性lazyLoadingEnabled更改为:
lazyLoadingEnabled="false"