[英]Spring boot , include one-to-many relation in Json response from both sides
我有两个实体,产品和类别,关系为 oneToMany。 每个产品都有一个类别,一个笼子可以有多个产品。
我可以从类别端显示 JsonResponse 中的产品列表,但不能从产品端显示。 我错过了什么?
-JsonResponse 使用按类别名称获取类别时:
{
"id": 1,
"reference": "cat1",
"name": "electornique",
"produits": [
{
"id": 2,
"reference": "tab1",
"designation": "ordinateurupdate",
"price": 600,
"quantite": 1234
},
{
"id": 3,
"reference": "tel1",
"designation": "tel 1 was updated",
"price": 600,
"quantite": 1234
},
{
"id": 4,
"reference": "ord2",
"designation": "ordinateur",
"price": 400,
"quantite": 3
}
]
}
使用通过 productReference 获取产品时的 JsonResponse:
URL: http://localhost:8080/api/produits/ord2
{
"id": 4,
"reference": "ord2",
"designation": "ordinateur",
"price": 400,
"quantite": 3
}
我想实现这一点:
{
"id": 4,
"reference": "ord2",
"designation": "ordinateur",
"price": 400,
"quantite": 3,
categorie : { id : "" , reference : "", name: "" }
}
-类别实体:
@Entity
@Table(name="categorie",indexes = {@Index (name="index_categorie_reference",columnList="reference",unique= true),
@Index(name="index_categorie_name",columnList="name",unique= true)
})
public class Categorie implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private String reference;
@Column(unique= true)
private String name;
@OneToMany(mappedBy= "categorie")
private List<Produit> produits;
// getters and setters...
}
-产品实体:
@Entity
@Table(name="produit",indexes = {@Index (name="index_produit_reference",columnList="reference",unique= true)})
public class Produit implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private String reference;
private String designation;
private double price;
private int quantite;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="categorie_id")
@JsonIgnore
private Categorie categorie;
public Produit() {
}
// getters and setters...
}
您看不到categorie
属性,因为它带有@JsonIgnore
注释。
但是,如果删除该注释,则在序列化 object 时将出现无限循环...... 这是一篇关于可能的解决方案/解决方法的好文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.