浏览 2872 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-26
最后修改:2010-04-26
之前其实就有遇到这个问题。我是在多的一方先删除掉数据 。再进行one端的update的。不然数据库里就会产生脏数据。例如 teacher.getStudentSet().clear(); Set newStudentSet = new HashSet(); //将新学生加入newStudentSet中 teacher.setStudentSet(newStudentSet); dao.update(teacher);
执行以上的方法 会产生如下效果。 students端新插入了数据。但是之前插入的记录的外键变为空,而没有被删除掉。
一直认为有很好的其他办法解决。但是就没去尝试。今天查了下。有个方法是这样的。但是不确定这是好方法。
public void addStudentSet(Student s) { getStudentSet().add(s); s.setPerson(this); } DAO dao= (DAO) BeanFactory.getBean("dao"); Teacher teacher = dao.getTeacherById(teacherId); teacher.getStudentSet().clear(); //将新学生加入newStudentSet中 teacher.addStudentSet(student1); teacher.addStudentSet(student2); teacher.addStudentSet(student3); dao.update(teacher);
据说这样就可以避免脏数据的产生。不知道这样是否是正确合理的方法。有更好的方法还请大家指导下啊。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |