Hi,
I'm using JPA with Hibernate implementation (but a solution on classic Hibernate would also be appreciated).
It's Many-to-Many
unidirectional relation, say between "Course" and "Student" (code below).
My problem is saving a Student when his Courses list is detached. I'm sure each such course is already saved in the database and has proper ID... so I wanted to just u
pdate the JoinTable without wasting performance on checking the existence of each course. I could do it easily with raw JDBC. But if I use Hibernate, it forces me to check and "re-attach" the courses (re-attaching is either through CASCADE, or re-selecting the courses).
Code:
@Entity
public class Student {
@Id private long id;
@ManyToMany @JoinTable(...)
private Set courses;
// ... more properties, getters, setters...
}
@Entity
public class Course {
@Id private long id;
// ... more properties, getters, setters...
}
Now:
// .. start transaction 1
Set<Course> detachedCourses= entityManager.find(...);
// ... end transaction 1, courses are now detached
// start transaction 2
Student stud=new Student("john doe");
s.setCourses(detachedCourses);
entityManager.persist(stud);
// end transaction 2 - this would fail unless I "re-attach" the courses
Is there a way to tell Hibernate to "just trust me &update the JoinTable (linking this studentID to those courseIDs), without reattaching/validating each course?
Thanks