Size: a a a

2020 May 19

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Если ты контролируешь код контроллеров, то в общем ничего страшного не будет, если отдать туда entity и там уже мапить.
Если не контролируешь, то лучше отдавать полную дто, а дальше пусть делают, что хотят
источник

ВК

Владислав Кузнецов... in learn.java
Найдитесь, пожалуйста, помощники!)
источник

DS

Dmitriy Shilnikov in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Если ты контролируешь код контроллеров, то в общем ничего страшного не будет, если отдать туда entity и там уже мапить.
Если не контролируешь, то лучше отдавать полную дто, а дальше пусть делают, что хотят
А если в entity ленивые поля есть?
источник

ДО

Даниил Осипов... in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Если ты контролируешь код контроллеров, то в общем ничего страшного не будет, если отдать туда entity и там уже мапить.
Если не контролируешь, то лучше отдавать полную дто, а дальше пусть делают, что хотят
Мне просто просто архитектурно не нравится то, что у нас сервис зависит от контроллера. Сущности зависят от таблиц в базе. DAO от сущностей. Сервис от dao. А теперь вдруг бац, и сервис зависит от вышестоящего контроллера. Из-за того, что мы внедряем в него маппер
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Dmitriy Shilnikov
А если в entity ленивые поля есть?
То надо думать над тем, чтобы отдавать дто с тем набором полей, которые хочет вызывающий код.
В спринг дата для этого есть projections
источник

NS

Name Schiefer in learn.java
Как решать кейс когда у прототипа есть и зависимости и final поля?
источник

ДЧ

Денис Чиканов... in learn.java
Name Schiefer
Как решать кейс когда у прототипа есть и зависимости и final поля?
Прототипа?
источник

NS

Name Schiefer in learn.java
Пардон, @Bean(scope=prototype)
источник

P

Pan Kotek in learn.java
Name Schiefer
Как решать кейс когда у прототипа есть и зависимости и final поля?
Инжектить ObjectFactory<Dependency>, но это такое себе решение
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Даниил Осипов
Мне просто просто архитектурно не нравится то, что у нас сервис зависит от контроллера. Сущности зависят от таблиц в базе. DAO от сущностей. Сервис от dao. А теперь вдруг бац, и сервис зависит от вышестоящего контроллера. Из-за того, что мы внедряем в него маппер
Ну тут 2 варианта:
Отдавать из сервиса полностью заполненную дто и дальше ее можно как угодно мапить вне сервиса.
Либо принимать в методах сервиса класс дто. Но тогда либо все возможные классы дто лежат рядом с сервисом, либо надо быть готовым к тому, что будут запрашиваться дто, несовместимые с сущностью.
источник

ДО

Даниил Осипов... in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Ну тут 2 варианта:
Отдавать из сервиса полностью заполненную дто и дальше ее можно как угодно мапить вне сервиса.
Либо принимать в методах сервиса класс дто. Но тогда либо все возможные классы дто лежат рядом с сервисом, либо надо быть готовым к тому, что будут запрашиваться дто, несовместимые с сущностью.
А чем отличается полностью заполненная dto от обычной сущности?
источник

М

Михаил in learn.java
Даниил Осипов
А чем отличается полностью заполненная dto от обычной сущности?
В нем нет логики, прежде всего. Зависимостей тоже быть не должно.
источник

ДО

Даниил Осипов... in learn.java
Михаил
В нем нет логики, прежде всего. Зависимостей тоже быть не должно.
а она нам и не нужна, мы просто маппим сущность в другую дто
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Даниил Осипов
А чем отличается полностью заполненная dto от обычной сущности?
В сущности есть логика и информация, связанная с орм
источник

Ю

Юрий in learn.java
Михаил и Дмитрий, вы конечно извините, но я вас не понимаю
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Юрий
Михаил и Дмитрий, вы конечно извините, но я вас не понимаю
Выше был вопрос про лейзи поля. Если отдавать наружу сущность, то при попытке дёрнуть лейзи поле можно получить исключение.
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Потому что в самой сущности геттер для этого лейзи поля - это метод, который лезет в БД. А сущность скорее всего будет детачнутая и в бд слазить не получится
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Это очень поверхностно, но если углубляться в детали, то это займет много времени
источник

ДО

Даниил Осипов... in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
В сущности есть логика и информация, связанная с орм
Это понятно, но причем тут это? Почему нельзя чтобы, сервис возвращал только сущности, а контроллер уже сам бы вызывал нужный маппер для нужной дто?
источник

ДО

Даниил Осипов... in learn.java
И тогда у нас не будет лишней зависимости и лишних методов у сервиса
источник