UUID.randomUUID().toString();
<div id="outlet"></div>
List<WebElement>
) 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;
}
Облазил уже все статейки интернета
обновить
существующую запись на основе данных, которые прибежали из контроллера в виде 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 с БД и получает некие данные обратно.
@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;
findAllByDateEventBetween(@Param("end_date") LocalDate date, @Param("end_time") LocalTime time);
@SpringBootApplication
@EnableJpaAuditing
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@CreatedDate
@Column(updatable = false)
private LocalDateTime created;
@LastModifiedDate
private LocalDateTime lastModified;
}
Могу ли я прямо обратиться к репозиторию 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 нужны нормальные объекты, что делать в таком случае? Неужели создавать отдельные точно такие же методы просто без конверта в дто?
+----------+------------+----------+
| order_id | product_id | quantity |
+----------+------------+----------+
| 1 | 2 | 10 |
| 2 | 3 | 11 |
+----------+------------+----------+
Product {
long productId;
}
Order {
long orderId;
}
OrderData {
Order order;
Product product;
int quantity;
}
Product {
long productId;
}
Order {
@MapKeyColumn(name = "product_id")
@Column(name = "quantity")
Map<Long, Integer>
}
hibernate.connection.driver_class = com.ibm.db2.jcc.DB2Driver
hibernate.connection.url = jdbc:db2://127.0.0.1:3306/test1250
hibernate.connection.username = testuser
hibernate.connection.password = Test12345678
hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
driverClassName: com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test1250
spring.datasource.username=testuser
spring.datasource.password=Test12345678
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
простое нажатие на хедер таблицы