我有一個學生模型
public class Student {
Student ?
private Long id;
private String name;
(name="student_university"/span>,
joinColumns= (name="student_id") 。
inverseJoinColumns=)
private List<University> universities。
而大學模型
@Entity。
public class University {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column
private String name;
@ManyToMany
@JoinTable(name="student_university",
joinColumns=@JoinColumn(name="university_id"),
inverseJoinColumns=@JoinColumn(name="student_id"))
private List<Student> students;
我得到2個模型和2個存盤庫。由于連接是ManyToMany,所以自動生成了3個表。如果沒有模型和資源庫,我怎么能從這個新表中獲得資料呢?也許你可以從控制器中寫一個請求,并將結果傳遞給模板?
uj5u.com熱心網友回復:
假設你使用spring-boot,你已經為你的物體創建了相關的JpaRepositories,例如:studentRepository和universityRepository。
從資料庫中加載選定的(下拉串列中的)學生和大學,例如。 讓我們假設從下拉串列中選擇的學生有#id。10,而從另一個下拉串列中選擇的大學是#id。45
Long studentId = 10L; //從控制器的請求中獲取真實值。
Student student = studentRepository.findById(studentId);
Long univerityId = 45L; //從你控制器的請求中獲取真實值。
University univeristy = universityRepository.findById(univerityId) 。
然后將該大學添加到學生的大學串列中并保存到DB中
student.getUniversities().add(university); /make sure your university list is not null else you will get a null pointer exception here
university.getStudents().add(student); //你也可以將該學生添加到大學的學生串列中。
studentRepository.save(student)。
保存后,student_university表應該有一個新的記錄,其中有學生和大學的ID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313458.html
標籤:



