在一個模型中,我有:
public class House {
....
....
@OneToMany
@Nullable
private List<Person> people;
運行 Spring Boot 應用程式時,我將看到創建的表。一個用于House模型,一個用于模型,另一個用于Person自動生成資料透視表以保存關系資訊House和Person.
我的問題是:如果我想created_at在資料透視表的行上添加一個欄位,那么對于 to 的每個關聯,House我Person就能知道它是什么時候創建的。
我找不到辦法做到這一點。我錯過了什么?
uj5u.com熱心網友回復:
您應該為連接表 (House_Person) 創建一個附加物體。在新物體內部,您可以宣告所需的附加欄位,例如 created_at。最后,您只需要使用@ManyToOne 將您的兩個物體鏈接到新物體:
House_Person 物體:
@Entity
@Table(name = "HOUSE_PERSON")
public class HousePerson {
...
private Person person;
private House house;
// additional fields
private Date created_at;
...
private Person person;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "PERSON_ID")
public Person getPerson() {
return person;
}
private House house;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "HOUSE_ID")
public House getHouse() {
return house;
}
}
看看這個例子,我希望能很好地描述它: codejava.net/hibernate-many-to-many-association-with-extra-columns-in-join-table-example
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/473586.html
