今天在做连表操作的时候在想要输出外键的对应的对象的其他属性值碰到了问题,
查网上说加上lazy=“FALSE”就好使了,加上后真就好使了,那么这是为什么呢
首先要知道lazy的作用,也就是延迟加载,当你查询一个对象时,如果lazy=True,只会加载这个对象的属性,而
不会加载与其相关连的外键所对应的对象的属性,所以设置lazy=FALSE,即取消了懒加载特性
当你在加载该对象时,会将外键对应的对象属性加载进来:
<many-to-one name="teacher" class="net.zjl.po.Teacher" fetch="select" lazy="false">
<column name="tid" />
</many-to-one>
在jsp页面上用s标签迭代输出:
<s:iterator value="list" >
<tr>
<td><s:property value="id" />
</td>
<td><s:property value="title" />
</td>
<td><s:property value="tkey" />
</td>
<td><s:property value="comment" />
</td>
<td><s:property value="teacher.tname" />
</td>
<td><s:property value="teacher.office" />
</td>
<td><s:property value="teacher.phone" />
</td>
</tr>
</s:iterator>
这里的teacher即为该类外键