|
2 / 2 / 0
Регистрация: 10.10.2018
Сообщений: 63
|
|
Нужна ли модель, если есть Entity13.01.2019, 13:13. Показов 4031. Ответов 17
Метки нет (Все метки)
Всем доброго времени суток. Подскажите, пожалуйста. У меня подключен хибернейт и под него есть сущности Entity. Информацию с этих сущностей нужно вывести в фронт . Насколько правильная практика выводить сразу из Entity или нужно создавать модель, из entity выгружать в модель, и из модели уже в фронт ?
0
|
|
| 13.01.2019, 13:13 | |
|
Ответы с готовыми решениями:
17
Entity Framework - Code first. Если есть навигационное свойство в классе, то зачем еще внешний ключ? Нужна ли консоль, если есть Workbench? Модель отдельно от Entity Framework |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 13.01.2019, 15:58 | ||
|
1
|
||
|
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
|
||
| 16.02.2019, 20:34 | ||
|
Если мы делаем DTO то тогда из Entity надо будет мапить в DTO в Factory. А это два новых класса! И много лишней логики... Это плохо когда создается много лишних структур, вместо использования одной строки JsonIgnore над password-ом или еще каким полем.
1
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 17.02.2019, 09:57 | |
|
Artyr2, классы модели принадлежат к архитектурному слою модели и не должны никак взаимодействовать со слоем представления чтобы не создавать сильное связывание элементов. Нет никаких проблем сделать хоть два хоть 22 новых класса если этого требует правильная архитектура, а маппинг в 90% случаев осуществляется одной строкой при помощи modelMapper
1
|
|
|
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
|
| 17.02.2019, 12:12 | |
|
Artyr2, о боже, 2 новых класса. Начнем с того что управляемые сущности нельзя выпускать за пределы транзакционного контекста, который ограничивается сервисным слоем. Маппинг в DTO и обратно с кучей настраиваемых правил делается в пару строк маппером, например mapstruct
1
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
||
| 17.02.2019, 12:15 | ||
|
Если используется ORM, то, по-хорошему, должно быть три разных множества типов данных: DTO, (т.н. “Business-Logic”) Model и ORM Entity.
2
|
||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 17.02.2019, 13:41 | |
|
Artyr2, примерно так:
3
|
|
|
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
|
|||
| 17.02.2019, 18:20 | |||
|
Я с вами не согласен. Много классов, кода = много багов, больше читать.
Внутри одной системы я всегда использую model-ки. Если мне надо общаться с другими микросервисами то делаю pojo,DTO. А с фронтом я всегда общаюсь именно моделями, если необходимо отправлять или принимать специфичные данные то тогда делаю новый pojo. Для запросов getAll, create, update, getById, делать DTO кажется излишним, это просто дублирование кода.
1
|
|||
|
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
|
| 17.02.2019, 19:34 | |
|
Artyr2, ахах, а теперь сделай две сущности, связанных один ко многим с обратной ссылкой, да и еще связи как LAZY
1
|
|
|
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
|
||||||||||||
| 17.02.2019, 19:54 | ||||||||||||
|
Я всегда так делаю! Нужно правильно настраивать проект, для работы. Кликните здесь для просмотра всего текста
Вот эта строка
Добавлено через 12 минут Об этом и речь, есть ОЧЕНЬ много механизмов и способов, для работы которые позволяют не делать огромное количество лишних классов. IT это очень динамичная среда, те парадигмы которые были актуальные вчера не будут актуальны завтра. Да, есть определенные правила, но если слепо следовать им вы не будите развиваться. Да, возможны проблемы когда делаешь такие эксперименты, но если просто делать по правилам далеко не уедешь. Те же @Autowired у нас просто замененны @AllArgsConstructor, или @RequiredArgsConstructor и кода намного меньше... И таких примеров много.
1
|
||||||||||||
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|||||
| 17.02.2019, 20:20 | |||||
|
1
|
|||||
|
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
||
| 17.02.2019, 21:13 | ||
А constructor injection через ломбок по-моему уже давно стандарт
0
|
||
|
19 / 19 / 1
Регистрация: 12.03.2018
Сообщений: 252
|
||
| 18.02.2019, 04:06 | ||
|
0
|
||
| 18.02.2019, 21:34 | |
|
Не по теме: Artyr2, удачи, рано или поздно ты придешь к истине или тебя научат. Умник)
0
|
|
| 18.02.2019, 22:18 | |
|
0
|
|
| 19.02.2019, 05:41 | |
|
Не по теме: reisal78, боюсь тут клиника, будет дольше)
0
|
|
|
2 / 2 / 0
Регистрация: 10.10.2018
Сообщений: 63
|
|
| 20.02.2019, 17:40 [ТС] | |
|
Спасибо за дискуссию. Лично для меня аргументы с разделением чтобы добиться слабой связности оказались более весомые
1
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 20.02.2019, 18:12 | |
|
0
|
|
| 20.02.2019, 18:12 | |
|
Помогаю со студенческими работами здесь
18
Как описать модель данных, если модель построена в режиме database first?
Тригер, проверяющ. есть ли такой ID и если есть обновляющий его, если нет - добавляющий Entity Framework 6.0.1. Модель Code First. Не обновляются данные, вылетает исключение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|