[英]Hibernate OneToMany and ManyToOne error in mapping
我有一個名為User的實體,具有以下字段:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Long id;
@Column(name = "name")
private String name;
@Column(name = "last_name")
private String lastName;
@OneToMany(mappedBy="userId")
private List<Survey> survey= new ArrayList<>();
擁有以下內容的調查實體:
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "SURVEY_ID")
private Long Id;
@ManyToOne
@JoinColumn(name = "user_id",referencedColumnName="user_id")
private User userId;
.....
我希望一個用戶擁有多個調查,並且每個調查都與一個用戶相關。 但是當我訪問allUsers時,我映射它的方式有問題,因為cuz作為JSON文件,我得到了:
[{"id":1,"name":"User","lastName":"user","email":"user@user.com","surveyData":[{"userId":{"id":1,"name":"User","lastName":"user","email":"user@user.com","surveyData": ,...... and repeats itself
因此,我不是獲取調查數據的值作為列表,而是獲取Users信息的值? 有人可以幫我弄這個嗎 ?
您的映射是正確的。
只需在User類中使用@JsonManagedReference
,在Survey類中使用@JsonManagedReference
@JsonBackReference
。 @JsonManagedReference
是引用的前一部分-可以正常序列化的部分。 @JsonBackReference
是參考的后半部分–序列化將省略它。
在用戶類別中:
@OneToMany(mappedBy="userId")
@JsonManagedReference
private List<Survey> survey;
在調查類中:
@ManyToOne
@JoinColumn(name = "user_id",referencedColumnName="user_id")
@JsonBackReference
private User userId;
我有2句話:
userId
重命名為user
,因為它是一個User對象,沒有標識符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.