LINUX.ORG.RU

Java Entity. ID or Object?


0

1

Если у вас есть две сущности, например Student и Group. У Student есть геттер getGroupId.

Как вы обычно пишете DAO? Получаете обьекты без связей с другими, или Student всегда достает из базы еще и группу, что удобно делать одним SQL запросом. Это более быстро работает на базе, чем потом при потребности дергать еще один select, но вызает более громоздкие обьекты. Это важно если потом этот DAO будут вызывать удаленно, так как при этом будет передаваться много ненужной информации.

Попрошу оставить JPA за рамками этого обсуждения

★★★★★

У нас специально отказались от хибернейта (но это давно было), и написали свой велосипед. Приходится всё по отдельности доставать, но только то, что нужно. Работы(рутинной) больше, конечно, но ничего лишнего, и скорость нормальная, и проблемы n+1 нет, чем всё дерево таскать где надо и где не надо.

Droid790
()
Ответ на: комментарий от Droid790

На локальной машине все хорошо даже с хибером, он лениво может. А вот потом отдать это по вебсервису - и все )))

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

В общем, тут от масштабов системы, наверное, зависит, если крупный энтерпрайз, то лучше сделать больше работы, но чтобы всё железно было, если система мелкая, для небольшого количества пользователей, то лучше делать так, чтобы меньше ручной работы было.

Droid790
()
Ответ на: комментарий от vertexua

А вот потом отдать это по вебсервису - и все )))

Нефиг дальше границ сессии (хиберовской) отдавать замепленные сущности. За границы нцжно передавать dto-шки. А в логике маппера уже и пишеш как хочешь - вытягиваешь весь граф зависимостей или нет. Собственно dto-шки могут быть jaxb бинами, и их уж можно отдавать в ответ на запрос.

dizza ★★★★★
()

А что мешает иметь 2 метода: один будет вытягивать только айдишник, а второй еще и список групп в том же запросе?

Про вызов dao удаленно - не понял.

dizza ★★★★★
()
Ответ на: комментарий от Droid790

Если крупный интерпрайз, то все таки там jpa/hibernate. Это кактус, но позволяет упростить сопровождение системы.

dizza ★★★★★
()
Ответ на: комментарий от Rastafarra

я просто к тому, что не надо преждевременно оптимизировать

Pi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.