Size: a a a

Java/Kotlin and more

2021 May 02

k

kuzznya in Java/Kotlin and more
entity - это представление схемы данных в бд
dto - это представление объекта для бизнес-логики
Иногда есть даже viewModel, которая представляет JSON, но можно и не выделять ее
Если entity будет одновременно и dto, то сильно сложнее изменять схему хранения
А она может меняться
Возможна даже миграция на другой тип бд
источник

k

kuzznya in Java/Kotlin and more
Если много entity и dto, берите MapStruct
источник

RZ

Roman Zinchuk in Java/Kotlin and more
java modelmapper удобнее, а еще я уверен что будут проблемы с lazy loading exception или как оно там, надо конфиг для мапера делать, который будет  пропускать lazy поля, которые не были загружены. А еще надо стратегию мапинга правильную ставить, а то мапинг может занять очень много времени из за дефолтной регулярки.

https://github.com/modelmapper/modelmapper/issues/172#issuecomment-463611218 - вот как лези поля пропускать
источник

MF

Michael Fediuchenko in Java/Kotlin and more
Хммм а чем modelmapper по Вашему мнению удобнее?
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Модел маппер дольше чем мап стракт.
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Мап стракт удобнее в настройке ибо для каждого дто можно сделать свои мапперы. И lazy exceptionне будет. Проверил лично на опыте. До этого использовал модел маппер
источник

MF

Michael Fediuchenko in Java/Kotlin and more
Не стоит выносить сущность (POJO) выше слоя сервисов, так как это не безопасно. Стоит придерживаться такой логики:
В слое контроллеров мы орудуем DTO и только, методы сервисов всегда принимают dto и возвращают dto, в слое сервисов можна для облегчения жизни использовать всякие мепперы MapStruct, modelmapper, dozer  и тд.
источник

MF

Michael Fediuchenko in Java/Kotlin and more
+++
источник

MF

Michael Fediuchenko in Java/Kotlin and more
Это сравнение более старых версий фреймворков, но не думаю что сильно что-то изменилось
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
А дольше ибо модел маппер работает через рефлексиб, а мап стракт генермт код, на этапе компмляции и посему это быстрее. + В мап стрвкте можно писать эекспрешены, на подобии SPeL
источник

MF

Michael Fediuchenko in Java/Kotlin and more
Сталкивался только иногда с проблемой в MapStruct когда он не замечал изменений в мапперах и не генерил новый код
источник

RZ

Roman Zinchuk in Java/Kotlin and more
А разве сам Спринг не возвращает сущности в Spring Data REST ?
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Решал такое mvn clean и потом сборка проекта в IDE.
источник

RZ

Roman Zinchuk in Java/Kotlin and more
mapstruct показался неудобным из-за того, что без костылей (@AfterMapping и ignore на lazy полях) не мог настроить пропуск lazy полей, которые не были загружены, пришлось выбрать modelmapper.
источник

АВ

Алексей Васин... in Java/Kotlin and more
Там декораторы еще можно прикручивать, достаточно удобно
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
> modelmapper удобнее

Аргументы будут?)
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Data rest очень редко используется, да и вообще не рекомендуется к использованию
источник

RZ

Roman Zinchuk in Java/Kotlin and more
я уже писал про костыли, которые приходилось использовать для работы с lazy loading
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Так надо мерить в сервисах, это раз

Два - тебе и так и так придется настраивать маппинг на лэзи в любом маппере
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Я прочитал. Так себе аргументы, тянет на "не знаю"
источник