多对一 lazy=true 生成的是代理类,属性为null

如果lazy=true(默认是true)

比如

 <class name="LinkPerson"  table="linkPerson">
                <id name="id">
                        <generator class="identity"/>
                </id>
<many-to-one name="company" class="Company" column="company_id" />
</class>

那么
action

public String list(){
	SysUser sysUser = SessionUtils.getSysUserFormSession(httpServletRequest);
	if (sysUser!=null) {
		List<LinkPerson> linkPersons = new ArrayList(sysUser.getLinkPersons());
		if (linkPersons!=null && linkPersons.size()!=0) {
			httpServletRequest.setAttribute("linkPersons", linkPersons);
		}
		return "list";
	}
		return "toLogin";
}



list.jsp

<s:if test="%{#request.linkPersons!=null}">
 <s:iterator value="%{#request.linkPersons}" var="linkPerson">
<s:property value="%{#linkPerson.company.name}"/>

<s:property value="%{#linkPerson.company.name}"/>不显示,debug发现action的save()方法中,linkPerson中的company是代理类,里面的属性都是null,自然<s:property value="%{#linkPerson.company.name}"/>不显示,如下图

而改成

 <class name="LinkPerson"  table="linkPerson">
                <id name="id">
                        <generator class="identity"/>
                </id>
<many-to-one name="company" class="Company" column="company_id" lazy="false"/>
</class>


则linkPerson中的company是实际的类,里面属性都在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值