部屋のクラスと学生のクラスの2つのクラスがあります。1つの部屋には多くの学生を含めることができますが、学生にも多くの部屋を含めることができます。したがって、私は@ManyToMany関係を使用しました
public class Room {
@ManyToMany
private Collection<Student> studentList = new ArrayList<Student>();
}
public class Student {
@ManyToMany(mappedBy="studentList")
private Collection<Room> roomList = new ArrayList<Room>();
}
Room_Studentという1つのマッピングテーブルを使用したいので、StudentのコレクションをRoomに追加することができました。Studentにコレクションを追加しようとすると、休止状態で保存されませんでした。ここにあります
Collection<Student> collectionOfStudents=new ArrayList<Student>();
Room room1=(Room) session.get(Room.class, 1);
Student student1=(Student) session.get(Student.class, 1);
Student student2=(Student) session.get(Student.class, 2);
collectionOfStudents.add(student1);
collectionOfStudents.add(student2);
room1.getStudentList().addAll(collectionOfStudents)
session.update(room1);
これは機能し、テーブルRoom_Studentに挿入されました
私がしたとき
Collection<Room> collectionOfRooms=new ArrayList<Room>();
Student student1=(Student) session.get(Student.class, 1);
Room room2=(Room) session.get(Room.class, 2);
Room room3=(Room) session.get(Room.class, 3);
collectionOfRooms.add(room2);
collectionOfRooms.add(room3);
student1.getRoomList().addAll(collectionOfRooms);
session.update(student1);
room2とroom3のテーブルRoom_Studentには挿入されませんでした。すべての返信をありがとう
編集1:追加しました
public class Student {
@ManyToMany(mappedBy="studentList",cascade={CascadeType.ALL})
private Collection<Room> roomList = new ArrayList<Room>();
}
これ
student1.getRoomList().addAll(collectionOfRooms);
session.update(student1);
部屋を更新/テーブルに挿入しませんでした