編輯:總體上更好的問題
我有以下兩個域:
@Entity
@Table(name="PERSON")
class Person implements Serializable {
@Id
@Column(name="person_id")
Long id
@Column(name="person_pidm")
Long pidm
@Column(name="person_first_name")
String first_name
@Column(name="person_last_name")
String last_name
@OneToMany(mappedBy="pidm")
private List<Telephone> phones
List<Telephone> getPhones() {
return phones
}
}
@Entity
@Table(name="TELEPHONE")
class Telephone implements Serializable {
@Id
@Column(name="telephone_id")
Long id
@Column(name="telephone_phone_number")
String phone_number
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
private Person pidm;
}
有了這個,我可以查詢一個人,并得到以下回應:
def result = Person.executeQuery(
"SELECT s "
"FROM Person "
"WHERE s.pidm = :pidm",
[pidm: pidm]
)
{
"id": 186506,
"first_name": "JANE",
"last_name": "DOE",
"pidm": 324950
}
但是當需要時,我也想包含該phones欄位,并得到類似的東西。
{
"id": 186506,
"phones": [
{
"id": 329815,
"phone_number": "1234567890"
},
{
"id": 329816,
"phone_number": "0987654321"
}
],
"first_name": "JANE",
"last_name": "DOE",
"pidm": 324950
}
我將如何執行第二個查詢以包含該phones欄位?
uj5u.com熱心網友回復:
我希望這會成功
@OneToMany(cascade = CascadeType.ALL,mappedBy="pidm")
@JsonBackReference
private List<SprteleDetail> phones
和
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
@JsonManagedReference
private Person pidm;
@JsonManagedReferences 和 JsonBackReferences 用于顯示具有父子關系的物件。@JsonManagedReferences 用于參考父物件,@JsonBackReferences 用于標記子物件。
uj5u.com熱心網友回復:
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
@JsonIgnore //try this
private Person pidm;
uj5u.com熱心網友回復:
在 json 中添加
@JsonBackReference您想要的欄位,例如
@ManyToOne
@JsonBackReference
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
private Person pidm;
uj5u.com熱心網友回復:
嘗試這個
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
@JsonBackReference //try this
private Person pidm;
uj5u.com熱心網友回復:
嘗試將@JsonBackReference 添加到第二個表,如下所示
@Entity
@Table(name="TELEPHONE")
class Telephone implements Serializable {
@Id
@Column(name="telephone_id")
Long id
@Column(name="telephone_phone_number")
String phone_number
@JsonBackReference // add just this line here
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
private Person pidm;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515510.html
標籤:爪哇春天休眠圣杯时髦的
上一篇:jakarta.persistence.EntityManagerFactory型別無法決議。它是從所需的.class檔案中間接參考的
