struts2.2.3+spring2.5.6+hibernate3.3
assets 对象 多对一 外键关联 user project对象
在action中传值 assetsaction!add?user.id=1&project.id&assets.name=xxx&assets.number=xxxx
保存的时候assets对象的值是有了,也保存了
但是user表中和project表中除了id字段其余全部都清空了
useraction的add方法:
Java code
public String add() {
assets.setProject(project);
assets.setUser(user);
assetsService.add(assets);
return "add";
}
我不想修改user和project的其他字段,怎么处理啊?
------解决方案--------------------assetsaction!add?user.id=1&project.id&assets.name=xxx&assets.number=xxxx
修改成下面的试试:
assetsaction!add?user.id=1&project.id=&assets.name=xxx&assets.number=xxxx
------解决方案--------------------你在传值的时候 只给了user.id project.id
然后直接就用assets.setXXX 这样必然是这样的结果 因为user 和 project中只是存在id的值 其余的值没有 你需要加一步 根据user.id查询出user实体 根据project.id查询出project实体 然后再用assets.setXXX
------解决方案--------------------还有一种方法就是修改你的添加方法 你的添加方法是如果不存在就添加 如果已存在就更新 他把user那两个表更新了 你查一下添加方法 有很多种的 具体我太记得 好久没用了
------解决方案--------------------其实是你没有实例化一个新的对象,
assetsService.add(assets);
你ADD的还是assets
你把这个重新NEW一个出来进行保存数据;
如: Assets as=new Assets();
as.set(***);
assetsService.add(as);
不知道明白没。
------解决方案--------------------user表和project表都得实例化一个新的出来进行操作!然后就有值了