我正在开发一个rest API,该API提供一个端点来插入Rule and Items。我有一个名为rule
的实体和另一个名为item
的实体,例如波纹管:
Rule.java
@Getter
@Setter
@Entity
@Table(name = "rule")
public class Rule extends PhysicalBaseEntity {
@NotNull
@Column(name = "title")
@Size(max = 100)
private String title;
@NotNull
@Column(name = "description")
@Size(max = 150)
private String description;
@OneToMany(cascade = {CascadeType.MERGE},orphanRemoval = true)
@JoinColumn(name = "rule_id",nullable = false)
private Set<Item> items;
}
Item.java
@Getter
@Setter
@Entity
@Table(name = "item")
public class Item extends PhysicalBaseEntity {
@NotNull
@Column(name = "code")
@Size(max = 50)
private String code;
@NotNull
@Column(name = "description")
@Size(max = 150)
private String description;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "parent_id",referencedColumnName = "id")
private Item parent;
@OneToMany(mappedBy="parent",cascade={CascadeType.ALL})
private Set<Item> children;
}
,我需要使用VO实体来表示该信息,但是我不知道如何ll create this VO's and I don
不知道这种方法是否是最好的。
我的第一个想法是Rule实体发送所有信息,例如:
{
"id": "55cfd101-3bc3-4842-a1ab-f88096b9ea06","title": "TITLE","description": "DESCRIPTION","items": [
{
"id": "fa1c8e5f-5791-491b-b1ee-4d09048608d6","code": "2","description": "PARENT","children": [
{
"id": "755bed57-1581-4524-bae1-4ec648711a88","code": "000","description": "FIRST SON"
"children": [
{
"id": "1420ad3b-5278-48fe-a638-77a2e16feb39","code": "111","description": "SECOND SON"
"children": [
{
"id": "f55cf8d1-b2e4-4a9e-9f79-df156a5ac0a4","code": "222","description": "THIRD SON"
}
]
}
]
}
]
}
]
}
这对我来说是最好的主意吗?