assets 对象 多对一 外键关联 user project对象在action中传值    assetsaction!add?user.id=1&project.id&assets.name=xxx&assets.number=xxxx保存的时候assets对象的值是有了,也保存了但是user表中和project表中除了id字段其余全部都清空了useraction的add方法: public String add() {
assets.setProject(project);
assets.setUser(user);
assetsService.add(assets);
return "add";
}
我不想修改user和project的其他字段,怎么处理啊?

解决方案 »

  1.   

    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
      

  2.   

    assetsaction!add?user.id=1&project.id=5&assets.name=xxx&assets.number=xxxx我写的时候写错了,是这样的一添加 assets 表中的值正常 user_id  project_id都有的只是user表和project表中除了id字段外,其他都被修改成null了
      

  3.   

    你在传值的时候 只给了user.id project.id
    然后直接就用assets.setXXX  这样必然是这样的结果  因为user 和 project中只是存在id的值 其余的值没有  你需要加一步  根据user.id查询出user实体  根据project.id查询出project实体 然后再用assets.setXXX
      

  4.   

    还有一种方法就是修改你的添加方法  你的添加方法是如果不存在就添加  如果已存在就更新  他把user那两个表更新了 你查一下添加方法 有很多种的  具体我太记得  好久没用了
      

  5.   

    那我还要注入一个userService 和一个 projectService
    能通过配置来解决吗?
      

  6.   

    其实是你没有实例化一个新的对象,
    assetsService.add(assets);
    你ADD的还是assets
    你把这个重新NEW一个出来进行保存数据;
    如: Assets  as=new Assets();
     as.set(***);
    assetsService.add(as);
    不知道明白没。
      

  7.   

    user表和project表都得实例化一个新的出来进行操作!然后就有值了