|
|
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПисать логику на Map совсем грустно. Все зависит от задачи. Построить на экране табличку на мапе - 1 цикл. Сделать ее динамической по настройкам - плевое дело. Добавить поле - даже в код лезть не надо. и т.п. Все тоже самое на геттерах-сеттерах - чистой воды чайна-код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 12:43 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевBlazkowiczПисать логику на Map совсем грустно. Все зависит от задачи. Построить на экране табличку на мапе - 1 цикл. Сделать ее динамической по настройкам - плевое дело. Добавить поле - даже в код лезть не надо. и т.п. Все тоже самое на геттерах-сеттерах - чистой воды чайна-код. А потом бац и надо поменять customerId(long) на customerUUID(String) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 12:45 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
забыл никА вам хватает бесплатной версии или вы использовали профешнл? Пользовал QueryDSL, там где лицензии jOOQ не хватало. jOOQ круче. Но, в целом, не моё. Просто был legacy проект с корявым дизайном БД, там ORM был совсем не к месту. Для нормальных ERP систем Hibernate всё ещё рулит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:00 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
забыл ник+100500. Уж лучше ActiveRecord в таком случае. Зачем нужен строготипизированный язык если всю логику писать на мапах? Зависит от подхода, но у меня такая же мысль была. Проще взять любой язык без строгой типизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:01 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевВсе зависит от задачи. Построить на экране табличку на мапе - 1 цикл. Сделать ее динамической по настройкам - плевое дело. Добавить поле - даже в код лезть не надо. и т.п. Все тоже самое на геттерах-сеттерах - чистой воды чайна-код. Это всё замечательно до тех пор пока нам не понадобится в эти таблички интегрировать бизнес-логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:02 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
забыл никА потом бац и надо поменять customerId(long) на customerUUID(String) :) Так в том то и дело, что в описании и будет Что-то типа было Код: javascript 1. стало Код: javascript 1. и клиентская часть рисующая табличку отображает другой столбец. В случае, если надо менять запрос, конечно все сложнее. Но в случае геттеров-сеттеров надо гарантированно перепахивать больше кода. Собственно геттеры-сеттеры в любом случае скрывают способ хранения property. Хранить их в map немного увеличивает накладные ресурсу, но добавляет гибкости. И избавляет от кучи кода (Даже если он весь в @) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:03 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЭто всё замечательно до тех пор пока нам не понадобится в эти таблички интегрировать бизнес-логику. Надо - геттеры и сеттеры к твоим услугам, тыж поди все одно поля public не делаешь? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:05 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньеви клиентская часть рисующая табличку отображает другой столбец. И чем это отличается от аннотаций? Кроме того что существенно увеличивает трудности с relations и всякими join? Далее проблемы со всякими лэйзи-лоадинг и кешированием... Если не нравятся геттеры - то есть Lombok в конце концов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:38 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевНадо - геттеры и сеттеры к твоим услугам, тыж поди все одно поля public не делаешь? :) Я делаю методы, которые работают с полями, а не геттерами-сеттерами. Это называется ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 13:50 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЯ делаю методы, которые работают с полями, а не геттерами-сеттерами. Это называется ООП. Возможность методов работать с другими методами - тоже часть ООП. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 14:08 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
забыл никИ чем это отличается от аннотаций? Кроме того что существенно увеличивает трудности с relations и всякими join? Этот подход (хранить в map, а не в полях класса) не создает никаких трудностей ни с join ни с другими relations. Ибо можно скормить хоть тому же Hibernate если очень захочется (ему собственно по барабану). Или самому написать запрос любой сложности. А аннотации требуют а- изменения кода, а так внешний вид формы можно хранить хоть в табличке и запоминать, какой пользователь какие поля скрыл, какие растянул, в каком порядке переставил и т.п. Более того, в отличии от аннотаций его не так сложно отправить на клиента, если там скажем javascript. Если же говорить про подход делать мапирование нескольких сущностей БД в одну POJO, то есть как плюсы, так и минусы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 14:15 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевBlazkowiczЯ делаю методы, которые работают с полями, а не геттерами-сеттерами. Это называется ООП. Возможность методов работать с другими методами - тоже часть ООП. :) Ну, если у вас большинство акцессоров приватные, тогда ладно. В принципе, если знать о проблеме, то можно её избежать. Тогда единственным минусом остаётся слегка уродливый код на акцессорах. Методы, которые работают с полями, обычно, более лаконичны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 14:15 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМетоды, которые работают с полями, обычно, более лаконичны. Так я и писал - зависит от задачи. Если надо обрабатывать сразу группу полей, то проще их в map загнать. (будет как раз лакониченее) Если по одному - каждое в отдельное поле. И то и другое - getter и map. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 15:07 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
slavik_mscт.е. правильно ли я понимаю: у меня три класса: что вы так в классы упёрлись? Если у вас на клиенте будет большая простыня сводных данных, то нафиг вам эти 3 класса? Без связки БД-->БЛ-->ГУИ нет смысла говорить о количестве классов. - делайте ОДНУ страничку VIEW-ГУИ. И под табличку в ГУИ(возможно JSON) будете делать свои классы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 17:07 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Petro123что вы так в классы упёрлись? Если у вас на клиенте будет большая простыня сводных данных, то нафиг вам эти 3 класса? Без связки БД-->БЛ-->ГУИ нет смысла говорить о количестве классов. - делайте ОДНУ страничку VIEW-ГУИ. И под табличку в ГУИ(возможно JSON) будете делать свои классы. Уперся потому что хочу сделать нормально. Простыня не такая уж и длинная. Вот и пытаюсь связать БД->БЛ->ГУИ. Стараюсь сделать слоенный пирог, в основе которого Spring MVC, сейчас использую spring-jdbc, позже когда всё заработает добавлю ORM. Еще позже добавлю Spring Security. А там может еще чего то, поэтому стараюсь делать правильно, чтобы можно было масштабировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 17:40 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
slavik_mscУперся потому что хочу сделать нормально. ну тогда тут нет темы для обсуждения на 2 страницы. - академически правильно в DAO - все таблицы представить объектами. Сколько таблиц - столько классов. Т.е. DAO убирает и маскирует СУБД. Берёшь и делаешь свой Helo World из 3-х таблиц как положено. После того как будет готово, можно посомневаться ... Не повторяйте DAO! http://www.ibm.com/developerworks/ru/library/j-genericdao/ Это только пример того что надо всё пробовать самому). Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2017, 20:49 |
|
||
|
Архитектура DAO
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, я к каждому классу который соответствует своей таблице в БД, делаю слой DAO и слой сервиса. И итоге есть класс который использует много объектов других классов, я могу использовать в слое DAO этого класса сервисы других классов? Насколько правильно так делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2017, 21:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39382267&tid=2123267]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 375ms |

| 0 / 0 |
