Я новичок в Java и Spring Boot.Я создаю REST-сервис, используя Spring Boot.У меня есть объект, который содержит только ссылки на другие объекты, как показано ниже:
@Entity
@Table(name = "table_xyz")
public class RolesAccessEntity {
@Id
@Column(name = "id", columnDefinition = "serial")
private int id;
@ManyToOne
@JoinColumn(name = "role_id", referencedColumnName = "id")
private RoleEntity roleEntity;
@ManyToOne
@JoinColumn(name = "page_id", referencedColumnName = "id")
private PagesEntity pagesEntity;
@ManyToOne
@JoinColumn(name="column_id", referencedColumnName = "id")
private ColumnsEntity columnsEntity;
}
Я должен получить весь контент и вернуть ответ REST.Когда я делаю это, помещая POJO в ObjectNode, используя Джексона, я получаю ответ как показано ниже:
{
"success": true,
"values": [
{
"id": 32,
"roleEntity": {
"id": 15,
"roleName": "Role1"
},
"pagesEntity": {
"id": 1,
"pageName": "Page1"
},
"columnsEntity": {
"id": 1,
"columnName": "Column1"
}
},
{
"id": 33,
"roleEntity": {
"id": 15,
"roleName": "Role1"
},
"pagesEntity": {
"id": 1,
"pageName": "Page1"
},
"columnsEntity": {
"id": 2,
"columnName": "Column2"
}
},
{
"id": 34,
"roleEntity": {
"id": 15,
"roleName": "Role1"
},
"pagesEntity": {
"id": 1,
"pageName": "Page1"
},
"columnsEntity": {
"id": 3,
"columnName": "Column3"
}
}
]
}
Но как мне сгруппировать вещи?Например:
{
"success": true,
"values":
[
{
"id": 32,
"roleEntity": {
"role_id": 15,
"roleName": "Role1",
"values": [
{"page_id": 1,
"page_name": "Page1",
"values": [
{
"column_id": 1,
"column_name": "Column1"
},
{
"column_id": 2,
"column_name": "Column2"
}
]
},
{"page_id": 2,
"page_name": "Page2",
"values": [
{
"column_id": 3,
"column_name": "Column1"
},
{
"column_id": 4,
"column_name": "Column2"
}
]
}
]}}]}
Я могу написать хэш-карту в сервисе и группе, написав много вложенного кода, чтобы получить это.Но не очень похоже на Java-иш.Есть ли способ, которым я мог бы написать еще один POJO, который даст мне этот результат?