日期:2014-05-17  浏览次数:20642 次

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表都得实例化一个新的出来进行操作!然后就有值了