【发布时间】:2019-11-04 20:21:03
【问题描述】:
我正在开发一个提供端点以插入规则和项目的休息 API。我有一个名为 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 实体来表示该信息,但我不知道 Ill create this VO's and I dont 如何知道这种方法是否是最好的。
我的第一个想法是 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"
}
]
}
]
}
]
}
]
}
这对我来说是不是最好的主意?
【问题讨论】:
标签: java hibernate spring-boot jpa