Hibernate更新多对一关联的多表时,一这方的关联信息丢失了!!贴下代码:
public class Check {
private Integer id;
private String check_sn;
private String check_next;
private Date check_time;
private String check_result;
private String check_comment;
private Account account; //一这方
private Employee employee;
.......
}
Hibernate.xml 文件是:
.... <many-to-one name="account" class="net.model.Account" lazy="false">
<column name="account_id"></column>
</many-to-one>
<many-to-one name="employee" class="net.model.Employee" lazy="false">
<column name="employee_id"></column>
</many-to-one>
jsp 页面是: <form action="updateCheck.action" method="post">
<input type="hidden" name="check.id" value="${check.id}"/><br/>
当前审核人: <input type="text" name="check.check_sn" value="${check.check_sn}"/><br/> 下一个审核人: <input type="text" name="check.check_next" value="${check.check_next}"/><br/> 审核时间: <input type="text" name="check.check_time" value="${check.check_time}"/><br/> 审核结果: <input type="text" name="check.check_result" value="${check.check_result}"/><br/> 审核意见: <input type="text" name="check.check_comment" value="${check.check_comment}"/><br/>
<input type="submit" value="审核结束"/>
</form>
action頁面是:
private Check check;
private Employee employee;
private Account account;
private CheckService checkService;
public String updateCheck(){
checkService.updateCheck(check);
return SUCCESS;
}
在debug里面看从jsp页面跳转到action时候,account 和employee 都是null 了。。
一更新那两个属性都为空了。
怎么会丢失?那里出错了。
我用junit测试更新没问题的。。
求高手解答...
拜谢!!!
解决方案 »
- 请问哪个大狭知道java调用oracle存储过程能否加查询条件!不是参数!
- struts2 怎么做下拉菜单
- 为什么 Service sss = new Service(); 错误
- 大家来帮我解决一个关于类装载的问题(报:Exception in thread "main" java.lang.SecurityException)
- 在线等!急急!!高手进!!
- 请教Strust的一个继承问题??
- 请各位介绍一下讲 java开发实例的好书!!! 谢谢
- 请帮一下, tomcat 5.0.25 配置连接池时总是报错,不能取得连接,以下是配置文件,测试文件和错误信息.
- 在linux里面,怎么把DB2的java包(db2java.jar)加到CLASSPATH环境变量里面里面去de ?
- 多帮忙了,先谢谢了,给点指点
- java文件修改后,MyEclipse总不能自动更新,每次都要从新发布才能更新,有怎么好的办法
- 关于数据库查询连接池问题
public String updateCheck(){
checkService.updateCheck(check);//这里有问题.
return SUCCESS;
}更新一个对象之前必须要求对象是"持久化"状态.要求它必须在数据库表中存在,并且在Hibernate的缓存中也存在,方法是先find()一下这个对象.
解决方法:
在Action中加入
Check tmpCheck = checkService.findCheckByID(check.getId());
tmpCheck.setCheck_sn(check.GetCheck_sn());
tmpCheck.setCheck_next(check.GetCheck_next());
....
...
checkService.updateCheck(tmpCheck);希望对你有帮助.
试过了,不是这里的问题。。
我用debug测试了,是从jsp页面跳到我的action 我里面带的两个关联表 employee和account就为null 了
用另一个来找也不行!
一开始没调试出来
过一会就OK了。
thank you !