Я работаю над проектом Java Spring Boot. У меня есть сущность, у которой 20 полей. В настоящее время у меня есть метод PUT, который принимает эти 20 полей, все они не являются нулевыми, и я проверяю их, используя валидаторы, включая моих пользовательских валидаторов. Но это дорого. Даже если я хочу изменить одно поле в своем БД, я полностью приношу строку, обновляю все поля, используя пользовательский карт и сохранить в дБ. В этой реализации, даже если только одно поле меняется, я должен отправлять все поля в запросе, а также перезаписываю 19 неизменного поля в БД, что является дорогостоящим. Я ищу решения: < /p>
Я должен быть в состоянии отправлять только поля, которые должны измениться, и я должен быть в состоянии проверить их на уровне DTO, используя валидатор (например: я должен быть в состоянии проверить, значения между 0 и 100. В текущем реализации у меня есть пользовательский валидатор для этого) < /li>
я должен быть в состоянии, чтобы это было в обращении только к этому. Я не должен перезаписывать значения, которые должны оставаться такими же. < /Li>
(своего рода необязательно) было бы лучше, если бы это могло быть общим. Я могу легко адаптироваться для своих различных контроллеров. < /Li>
< /ol>
Я искал размышления Java и нашел эту реализацию: < /p>
@PatchMapping("/{id}")
public Product updateProductFields(@PathVariable int id,@RequestBody Map fields){
return service.updateProductByFields(id,fields);
}
< /code>
public Product updateProductByFields(int id, Map fields) {
Optional
existingProduct = repository.findById(id);
if (existingProduct.isPresent()) {
fields.forEach((key, value) -> {
Field field = ReflectionUtils.findField(Product.class, key);
field.setAccessible(true);
ReflectionUtils.setField(field, existingProduct.get(), value);
});
return repository.save(existingProduct.get());
}
return null;
}
< /code>
public interface ProductRepository extends
JpaRepository {
}
< /code>
But I am not sure if this satisfies my desires. Do you have any suggestions?
Подробнее здесь: https://stackoverflow.com/questions/777 ... pring-boot
Частичное обновление с использованием Spring Boot ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759056308
Anonymous
Я работаю над проектом Java Spring Boot. У меня есть сущность, у которой 20 полей. В настоящее время у меня есть метод PUT, который принимает эти 20 полей, все они не являются нулевыми, и я проверяю их, используя валидаторы, включая моих пользовательских валидаторов. Но это дорого. Даже если я хочу изменить одно поле в своем БД, я полностью приношу строку, обновляю все поля, используя пользовательский карт и сохранить в дБ. В этой реализации, даже если только одно поле меняется, я должен отправлять все поля в запросе, а также перезаписываю 19 неизменного поля в БД, что является дорогостоящим. Я ищу решения: < /p>
Я должен быть в состоянии отправлять только поля, которые должны измениться, и я должен быть в состоянии проверить их на уровне DTO, используя валидатор (например: я должен быть в состоянии проверить, значения между 0 и 100. В текущем реализации у меня есть пользовательский валидатор для этого) < /li>
я должен быть в состоянии, чтобы это было в обращении только к этому. Я не должен перезаписывать значения, которые должны оставаться такими же. < /Li>
(своего рода необязательно) было бы лучше, если бы это могло быть общим. Я могу легко адаптироваться для своих различных контроллеров. < /Li>
< /ol>
Я искал размышления Java и нашел эту реализацию: < /p>
@PatchMapping("/{id}")
public Product updateProductFields(@PathVariable int id,@RequestBody Map fields){
return service.updateProductByFields(id,fields);
}
< /code>
public Product updateProductByFields(int id, Map fields) {
Optional
existingProduct = repository.findById(id);
if (existingProduct.isPresent()) {
fields.forEach((key, value) -> {
Field field = ReflectionUtils.findField(Product.class, key);
field.setAccessible(true);
ReflectionUtils.setField(field, existingProduct.get(), value);
});
return repository.save(existingProduct.get());
}
return null;
}
< /code>
public interface ProductRepository extends
JpaRepository {
}
< /code>
But I am not sure if this satisfies my desires. Do you have any suggestions?
Подробнее здесь: [url]https://stackoverflow.com/questions/77789880/partial-update-using-spring-boot[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия