今天遇到一个问题是这样的:
公司用的项目是ssh,我在struts2的action中调用service的一个方面,把一个对象引用传进去,对象引用在service中的方法中被从数据库中取出的对象替换掉再回到action中,结果对象中的数据又回到原来调用service方法前的状态,感觉和spring的事务应该有关系,搞不懂怎么处理的.请问大家有没有碰到过这个问题??????
Action中代码
public String init() throws Exception{
......
newExperimentTaskService.setCurrentProcessData(userinfo.getUserId(),object,detailObject);
......
}
service中的代码
public void setCurrentProcessData(String userId,TBnsNewExperimentTask object, TBnsNewExperimentTask detailObject) {
......
List<tbnsnewexperimenttask> taskList = searchTBnsNewExperimentTaskList(searchCondition);
//对象引用替换为从数据库取出的对象引用,记录肯定存在
object = taskList.get(0);
......
}
应该不是事务得问题,你犯了一个最基本的错误
[code="java"]List taskList = searchTBnsNewExperimentTaskList(searchCondition);
//对象引用替换为从数据库取出的对象引用,记录肯定存在
[color=red]object [/color]= taskList.get(0); [/code]
这里得object不是你在action里面得object了,它们只是引用了同样得对象,你应该返回这个object就可以了。