Добрый день.
Скажите пожалуйста, правильно ли я понимаю, что у вас есть таблица с данными, а также сами сущности (entity) и вы хотите вернуть результат полученный из БД на клиент?
Т.е. меня интересует следующее: db first or code first?
Если у вас code first, то значит сущности у вас имеются и вам необходимо создать доп. классы (DTO). Далее полученные данные из БД замаппить в DTO.
Для маппинга (после того, как будут созданы DTO) можно использовать доп. либы: ModelMapper, MapStruct или же интерфейс
Converter<S,T>
Если хотите создать dto на основе имеющегос у вас json файла, то можно воспользоваться онлайн-сервисом или представляемой ими либой.
Сервис -
https://www.jsonschema2pojo.org/
Кстати, вы уверены, что у вас в вопросе указаны данные в json?
Вот, json:
{
"id": 1,
"numberOperation": "010",
"nameOperation": "Токарная",
"workshop": 6465,
"area": 7,
"OO": true,
"OTK": false,
"PZ": true,
"KPS": true,
"transition": [
{
"id": 1,
"nameTransition": "Закрепить деталь",
"executor": [
{
"id": 1,
"nameExecutor": "4784",
"tsht": "4",
"tpz": "9",
"test": "7",
"tshtCalculated": "",
"tpzCalculated": "",
"testCalculated": "",
"kvr": "973"
}, ]
},
]
}
И вот dto построенные на основе вышеуказанного json (обратите внимание, что код скорее всего необходимо подправить под ваши нужды)
DTOs-----------------------------------com.example.Example.java-----------------------------------
package com.example;
import java.util.List;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"id",
"numberOperation",
"nameOperation",
"workshop",
"area",
"OO",
"OTK",
"PZ",
"KPS",
"transition"
})
@Generated("jsonschema2pojo")
public class Example {
@JsonProperty("id")
public Long id;
@JsonProperty("numberOperation")
public String numberOperation;
@JsonProperty("nameOperation")
public String nameOperation;
@JsonProperty("workshop")
public Long workshop;
@JsonProperty("area")
public Long area;
@JsonProperty("OO")
public Boolean oo;
@JsonProperty("OTK")
public Boolean otk;
@JsonProperty("PZ")
public Boolean pz;
@JsonProperty("KPS")
public Boolean kps;
@JsonProperty("transition")
public List<Transition> transition = null;
}
-----------------------------------com.example.Executor.java-----------------------------------
package com.example;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"id",
"nameExecutor",
"tsht",
"tpz",
"test",
"tshtCalculated",
"tpzCalculated",
"testCalculated",
"kvr"
})
@Generated("jsonschema2pojo")
public class Executor {
@JsonProperty("id")
public Long id;
@JsonProperty("nameExecutor")
public String nameExecutor;
@JsonProperty("tsht")
public Long tsht;
@JsonProperty("tpz")
public Long tpz;
@JsonProperty("test")
public Long test;
@JsonProperty("tshtCalculated")
public String tshtCalculated;
@JsonProperty("tpzCalculated")
public String tpzCalculated;
@JsonProperty("testCalculated")
public String testCalculated;
@JsonProperty("kvr")
public Long kvr;
}
-----------------------------------com.example.Transition.java-----------------------------------
package com.example;
import java.util.List;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"id",
"nameTransition",
"executor"
})
@Generated("jsonschema2pojo")
public class Transition {
@JsonProperty("id")
public Long id;
@JsonProperty("nameTransition")
public String nameTransition;
@JsonProperty("executor")
public List<Executor> executor = null;
}