package com.wang.vo;import java.io.Serializable;public class Ren implements Serializable { private int id;
 private String name;
 private Content content;
 public Ren(){
  
 }
 public Ren(String name,Content content){
  this.name=name;
  this.content=content;
 }
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Content getContent() {
  return content;
 }
 public void setContent(Content content) {
  this.content = content;
 }
}Content.java package com.wang.vo;import java.io.Serializable;public class Content implements Serializable { private String email;
 private String tel;
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public String getTel() {
  return tel;
 }
 public void setTel(String tel) {
  this.tel = tel;
 }
}
修改方法:public void testUpdate(){
   Ren ren = RenDAO.findById(1);
   ren.setName("zhangsan");
   Content content = new Content();
   content.setEmail("[email protected]");
   content.setTel("110119120");
   renDAO.update(ren);
}
修改完 email tel 还是以前的值,没修改掉,不知道问题出哪了,高人指点下,第一次用组建映射。谢了。运行时没有问题,不会报错.

解决方案 »

  1.   

    你这是new de 的一个对象,你的根据ID 获取到需要修改的对象 把需要修改的值set进去 再update
      

  2.   

    Content content = new Content();
       content.setEmail("[email protected]");
       content.setTel("110119120");
    这三句是干嘛用的?
      

  3.   

    Content content = new Content();
    content.setEmail("[email protected]");
    content.setTel("110119120");
    你这样写是新建一个对象赋值,这个不是你需要修改的那个对象,所以原来的就没有改过来,你得通过条件获取到你需要修改的对象,再把值set进去,然后update 就OK了
      

  4.   

    这个地方写错了,Content是 Ren.get 出来了 不好意思。
      

  5.   

    修改方法:
    Java code
    public void testUpdate(){
       Ren ren = RenDAO.findById(1);
       ren.setName("zhangsan");
       Content content = new Content();
       content.setEmail("[email protected]");
       content.setTel("110119120");
       ren.setContent(content);
       renDAO.update(ren);
    }这样就应该可以了,你没把content对象set进去!
      

  6.   

    刚才那个修改方法法错了:public void testUpdate(){
       Ren ren = RenDAO.findById(1);
       ren.setName("zhangsan");
       Content content = ren.getContent();
       content.setEmail("[email protected]");
       content.setTel("110119120");
       ren.setContent(content);
       renDAO.update(ren);
    }我是这么写的,但是修改就是修改不了 email 和 tel ,不知道为什么。
      

  7.   

    RenDAO的update方法贴出来,还有,运行这段代码的hibernate语句也贴出来吧。映射文件配置是怎样的?
      

  8.   

    renDAO调用的是
    public void update(T t){
    try{
    this.getHibernateTemplate().update(t);
    }catch(RuntimeException e){
    throw new RuntimeException("修改数据失败");
    }
    }