初学者
昨天弄了一天
发现现有的一对多关系 不能修改
比如 一个学生表 一个班级表 学生和班级是多对一
如果已经指定 01号学生 在01号班级 就无法用update 使01号学生改为对应02号班级
示例如下:
Student student=studentDao.get(1);
student.setClazz(2);
studentDao.update(1);那么如果 添写学生信息时 确实添错 需要修改 是不是就不能用hibernatedaosupport的 update方法?十分着急 各位大侠多多指教
昨天弄了一天
发现现有的一对多关系 不能修改
比如 一个学生表 一个班级表 学生和班级是多对一
如果已经指定 01号学生 在01号班级 就无法用update 使01号学生改为对应02号班级
示例如下:
Student student=studentDao.get(1);
student.setClazz(2);
studentDao.update(1);那么如果 添写学生信息时 确实添错 需要修改 是不是就不能用hibernatedaosupport的 update方法?十分着急 各位大侠多多指教
Student student=studentDao.get(1);
student.setClazz(2);
studentDao.update(1); studentDao.update(Integer id)方法定义是 getHibernateTemplate(get(id))如果update方法不到get里去找student
而改为studentDao.update(Student student)
update就可以实现了 请问update方法中调get返回的对象为什么不行???????????
比如学生保持跟class的关系Student student=studentDao.get(1);
拿掉class关联
Clasz clasz = student.getClasz();
clasz.remove(student);
update(clasz);
student.setClazz(clasz2);
studentDao.update(1);
student.setClazz(2);
这里student已经是一个持久化对象了,
你在update(Integer id)方法里是不可以
用一个id去加载两个持久化对象的,
getHibernateTemplate(get(id))
也就是说,你不可以用同一个id去调用两次get(id)方法,
其实你不需要显式调用update()方法,
持久化对象的一个特点就是,当session(与数据库的连接)结束时,
会自动将数据库中的值与自身的值同步,
你把update(clasz); 这段去掉就可以了