會話刷新後,集合數據從數據庫中刪除。似乎Hibernate檢測到原始集合被替換,但在我們的傳統項目中,我們不希望Hibernate執行刪除操作。有什麼辦法可以做到嗎?刷新後休眠集合刪除
下面是示例代碼:
public class Student{
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name="student_id")
private List<Course> courses;
......
public static void main(String[] args){
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
Student s = (Student) session.get(Student.class, id);
//set new name
s.setName("new name");
// this is neccessary in our project, and I can't change it.
List<Course> newCourses = new ArrayList<Course>();
newCourses.add(...);
s.setCourses(newCourses); // replace the collection with new
//update s
session.update(s);
session.getTransaction().commit();
session.close();
}
}
事務提交時,Hibernate會在數據庫中刪除收集的數據,因爲原來的集合被替換爲一個新的後,但我不想休眠去做這個。有什麼辦法可以做到嗎?
你沒有顯示一些級聯映射嗎? – Bozho
沒有級聯的集合 – Hebing