Size: a a a

Java/Kotlin and more

2021 January 15

HH

Human Human in Java/Kotlin and more
Приходят данные - spring маппит их на твою сущность, ты ее сохраняешь. ID автогенерится базой, когда в нее кладешь.
источник

N

Nonverbis in Java/Kotlin and more
Human Human
Я так понял, что ты хочешь использовать сущность как объект входных данных - ок. Что у тебя конкретно не получается?
Не получается красиво написать. Так, чтобы не стыдно было. Код-то заработал.
источник

N

Nonverbis in Java/Kotlin and more
Human Human
Приходят данные - spring маппит их на твою сущность, ты ее сохраняешь. ID автогенерится базой, когда в нее кладешь.
Значит, надо пробовать маппер какой-то.
источник

HH

Human Human in Java/Kotlin and more
Nonverbis
Не получается красиво написать. Так, чтобы не стыдно было. Код-то заработал.
Если по “хорошим практикам” - у тебя должно быть DTO и отдельно сущность. DTO приходит в контроллер, спринг маппит вход. данные на DTO, дальше ты маппишь с помощью например мэпстракта свой dto на entity. Или маппишь вручную.
источник

HH

Human Human in Java/Kotlin and more
Если “по умному” то это не всегда надо. Если у тебя банальный CRUD тебе будет достаточно "маппить на сущность”
источник

HH

Human Human in Java/Kotlin and more
Суть DTO в том, что тебе приходят одного формата данные и ты используешь их, чтобы как то хитро изменить свои сущности
источник

N

Nonverbis in Java/Kotlin and more
Human Human
Если “по умному” то это не всегда надо. Если у тебя банальный CRUD тебе будет достаточно "маппить на сущность”
да, у меня просто круд.
источник

N

Nonverbis in Java/Kotlin and more
Спасибо всем ответившим. Буду завтра думать. Может, лучше что получится.
источник

HH

Human Human in Java/Kotlin and more
Посмотри на spring data rest
источник

HH

Human Human in Java/Kotlin and more
это про crud-оделанье
источник

N

Nonverbis in Java/Kotlin and more
Human Human
Посмотри на spring data rest
Так у меня mvc-шный проект. В смысле я на шаблонизаторе рендерю html через thymeleaf. А тут что-то рестовое.
источник

HH

Human Human in Java/Kotlin and more
Nonverbis
Так у меня mvc-шный проект. В смысле я на шаблонизаторе рендерю html через thymeleaf. А тут что-то рестовое.
А ну тогда да - смысла нет
источник

N

Nonverbis in Java/Kotlin and more
Спасибо всем. Я завтра попробую дата байндеры посмотреть и мапперы. Может, что получше получится.
источник

А

Азизхон Имомназаров... in Java/Kotlin and more
Переслано от Азизхон Имомназаров...
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
#toAdmins
источник

N

Nonverbis in Java/Kotlin and more
Дмитрий , @vlad_misiukevich96

https://pastebin.com/7EAu5mEE

Удалил свой конвертер. Вообще все удалил. И работает.

Отличие от петклиники только в том, что у меня в html ставится id, а в петклинике - name.
А именно вот так.

У меня:

<option th:each="item : ${items}" th:value="${item.getId()}"
                       th:text="${item}">Value</option>

Генерируемая форма:

https://pastebin.com/6Xh6xk0y

А в петклинике: <option th:each="item : ${items}" th:value="${item}"
             th:text="${item}">dog</option>

https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/templates/fragments/selectField.html

Генерируемая форма:
https://pastebin.com/tv9HKdAR

Отсюда вопрос. Это документированная возможность? Т.е. если в форме задать им объекта id и в value селекта написать id, то спринг магически сам все поймет.
источник

V

Vlad in Java/Kotlin and more
Nonverbis
Дмитрий , @vlad_misiukevich96

https://pastebin.com/7EAu5mEE

Удалил свой конвертер. Вообще все удалил. И работает.

Отличие от петклиники только в том, что у меня в html ставится id, а в петклинике - name.
А именно вот так.

У меня:

<option th:each="item : ${items}" th:value="${item.getId()}"
                       th:text="${item}">Value</option>

Генерируемая форма:

https://pastebin.com/6Xh6xk0y

А в петклинике: <option th:each="item : ${items}" th:value="${item}"
             th:text="${item}">dog</option>

https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/templates/fragments/selectField.html

Генерируемая форма:
https://pastebin.com/tv9HKdAR

Отсюда вопрос. Это документированная возможность? Т.е. если в форме задать им объекта id и в value селекта написать id, то спринг магически сам все поймет.
Это не магия,  если ты кидаешь через форму id, то просто в параметрах контроллера ставишь @RequestParam Integer id,  и да,  спринг "магически"  ее примет
источник

V

Vlad in Java/Kotlin and more
Хотя я не знаю новых фишек спринга,  и может не нужна уже аанотация,  но лучше поставить,  улучшает читабельность
источник

N

Nonverbis in Java/Kotlin and more
Vlad
Это не магия,  если ты кидаешь через форму id, то просто в параметрах контроллера ставишь @RequestParam Integer id,  и да,  спринг "магически"  ее примет
Спасибо.
источник

A

Alexey in Java/Kotlin and more
Здравствуйте!
Почему @value значение из application.properties  может возвращать null, если переменная используется в методе класса, который точно попадает под сканирование (нормально отрабатывают интерфейсы openfeign)?
источник