Я использую DataNucleus в качестве реализации JPA для хранения моих классов в своем веб-приложении. Я использую набор преобразователей, которые имеют toDTO()
и fromDTO()
.Entity to DTO conversion with JPA
Моя проблема в том, что я хочу, чтобы избежать всю БД, передаваемый по проводам:
- Если я ленивые нагрузки, преобразователь будет пытаться получить доступ всех полей и загружаю затем (в результате чего очень нетерпеливая загрузка).
- Если я не lazy load, я получу огромную часть БД, так как пользователь содержит группы, а группы содержит пользователей и т. Д.
Есть ли способ явно загрузить некоторые поля и оставить остальных как NULL в моем загруженном классе? Я пробовал документы DataNucleus без везения.
Вы имеете в виду набор DTO, который будет использоваться каждым видом? Как пользователь, не имеющий поля «groups» для отправки на просмотр, который не должен знать группы пользователей и т. Д.? – WhyNotHugo
Это действительно зависит от вашего приложения и того, как вы его создаете. Вы говорите о том, что это веб-приложение, но на одном дыхании вас беспокоят вещи, отправляемые по проводам. Какой провод? Провод между сервером приложений и базой данных или логическим проводом между представлением и уровнем модели/контроллера или провод между вызовом AJAX браузера и сервером? –
В основном, провод между браузером и сервером, но я также хотел бы уменьшить данные java-сервера DB <->, которые также искажаются ... Я думаю, что ленивая загрузка и использование одного dto для представления работают, поскольку при преобразовании модели в , Я не буду случайно загружать ненужные данные, и я отправляю только то, что нужно мнению. Это больше работы (много классов), но я не вижу выбора. Благодарю. – WhyNotHugo