Converter<S,T>
{
"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"
}, ]
},
]
}
-----------------------------------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;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
char symbol = scanner.next().charAt(0);
if (symbol == 'S') {
System.exit(-1);
}
}
}
Map<Long, Product>
Облазил уже все статейки интернета
Error: Could not find or load main class jdk Caused by: java.lang.ClassNotFoundException: jdk.
обновить
существующую запись на основе данных, которые прибежали из контроллера в виде DTO.Далее конвертирую в entity, но откуда мне взять значения тех полей, которых не было в запросе?
Converter<S, T>
. И для каждого из полей сделать проверку типа (псевдокод): if (fieldValue != null) { entity.setField(fieldValue); }
modelMapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
вот мне интересно, как решается этот вопрос. Разве это нормально, что на каждый пришедший запрос к сервису приходится ходить к базе данных? И это без учета логики!
Это базовая ситуация, с которой сталкивается каждый. Допустим у меня entity Person с атрибутом даты рождения, которую я не хочу отображать в PersonDto. Когда пользователь пришлем мне PersonDto по API для, допустим, операции обновления, то как мне при конвертации в entity вернуть эту дату рождения, чтобы я мог сохранить новую сущность?
Проблема в том что, Из-за больших обращений в сторонний API, программа работает слишком долго(5-7 минут) при запуске на прод получаю 504 Gate away.
Flux<>
При каждом итерации цикла используя WebClient стучится с параметром в сторонний API с БД и получает некие данные обратно.
public String translate(String en) {
for (Map.Entry<String, String> d : dictionary.entrySet())
System.out.print(d.getValue() + " ");
return en;
}
Add a new method translate(String en) which take some string in English, and returns
its translation in Russian as the value of the type String.
public MyTranslator(HashMap<String, String> dictionary) {
this.dictionary = dictionary;
}
как правильно нужно написать метод транслейт, что бы он находил в словаре нужно слово, обьеденял с другими и выводил в консоле, как указано в задании?
public String translate(String en) {
return this.dictionary.get(en);
}
Add code to read string from console and pass it into translate method. Print result to
console.
Scanner, System.in
@GetMapping("/json")
public String getJSON2() {
return "{ \"id\": 10, \"name\": \"Clementina DuBuque\", \"username\": \"Moriah.Stanton\","
+ " \"email\": \"Rey.Padberg@karina.biz\", "
+ "\"address\": { \"street\": \"Kattie Turnpike\", "
+ "\"suite\": \"Suite 198\", \"city\": \"Lebsackbury\", "
+ "\"zipcode\": \"31428-2261\", \"geo\": { \"lat\": "
+ "\"-38.2386\", \"lng\": \"57.2232\" } }";
}
data: { command: "GetDriverInfo" },
, а главное зачем и как она должна быть обработана контроллером.console.log(response.driverVer);
, если такого параметра driveVer у вас нет в json. @Embeddable & @Embedded
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>2.2.2</version>
</dependency>
@Type(type = "jsonb")
@Column(columnDefinition = "jsonb")
private List<Child> children;
Могу ли я прямо обратиться к репозиторию Entity A из Service B?
Или мне надо это делать вот так Service B -> Service A -> Repository A?
Optional<T>
из репозитория и в случае, если объект не найден, то на сервисном уровне выбрасываете исключение orElseThrow()
. Ну а далее ExceptionHandler ловит исключение и отдает соответствующий код ошибки и сообщение на фронт.ServiceA {
@Autowired
RepoB repoB;
@Autowired
ServiceB serviceB;
// 1 вариант
List<Job> doSomeJob1(String email){
User user = repoB.findUserByEmail(email).orElseThrow(UserNotFoundException::new);
return user.getJobs();
}
// 2 вариант
List<Job> doSomeJob2(String email) {
User user = serviceB.getUserByEmail(email);
return user.getJobs();
}
RepoB {
Optional<User> findUserByEmail(String email);
}
ServiceB {
@Autowired
RepoB repoB;
User getUserByEmail(String email){
return repoB.findUserByEmail(email).orElseThrow(UserNotFoundException::new);
}
}
Проблема в том, что у меня все сервисы DTOшки, а для работы Service B нужны нормальные объекты, что делать в таком случае? Неужели создавать отдельные точно такие же методы просто без конверта в дто?