【发布时间】:2022-01-20 04:13:44
【问题描述】:
我的两个实体之间存在多对一关系。我正在尝试获取一个 JSON 对象作为响应,其中包含多个父级具有相同子级时子实体的所有详细信息。我的问题是,如果 2 个父对象都有一个子对象,假设子对象有 ID=5,则第一个父对象在 JSON 中显示整个对象,但第二个父对象只显示 ID。
父实体(PendingTradeSkin.java)中的映射
@ManyToOne
@JoinColumn(name="skin_details_id")
private SkinDetails skinDetails;
子实体中的映射(SkinDetails.java)
@OneToMany(mappedBy="skinDetails", cascade= {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST})
@JsonIgnore
private List<PendingTradeSkin> pendingTradeSkins;
我目前收到的 JSON 响应
{
"id": 3,
"skinDetails": {
"id": 5,
"category": "category",
"collection": "collection",
"quality": "quality",
"wear": "wear",
"weapon": "weapon",
"name": "name"
},
"price": 0.00,
"dateBought": "2022-01-19",
"quantity": 5
},
{
"id": 6,
"skinDetails": 5,
"price": 0.00,
"dateBought": "2022-01-19",
"quantity": 5
}
我需要第二个对象 (id=6) 来输出整个 skinDetails 对象。
我的预感是我在使用 @ManyToOne/@OneToMany 映射时做错了什么,但似乎无法缩小导致此问题的原因。
非常感谢任何帮助,谢谢。
【问题讨论】:
-
它不应该像这样工作,因为
skinDetails是SkinDetail的一种。它应该是一个 skinDetail 对象,或者它应该为 null 它如何为您映射整数。更新您的完整模型和存储库 -
@GnanaJeyam 我能够找出我的模型的问题。我把它作为下面的答案包括在内。感谢您对我的问题提出意见!
标签: java spring-boot one-to-many many-to-one