Какие технологии, кроме Spring, вы используете?
Прежде всего, для каждого представления есть отдельные DTO, которые разбираются только на то, что нужно.Один DTO для id + пароль, другой для адресных данных и т. Д. Помните, что DTO могут наследовать друг от друга, поэтому вы можете избежать дублирования.И никогда не передавайте бизнес / ORM объекты непосредственно для просмотра.Это слишком рискованно, утечки в некоторых средах могут позволить пользователям изменять поля, которые вы не предназначали.
После того, как DTO возвращается из представления (большинство веб-сред работают так), просто загрузите всю сущность изаполните только те поля, которые присутствуют в DTO.
Но кажется, что настойчивость беспокоит вас.Предполагая, что вы используете Hibernate, вы можете воспользоваться установкой dynamic-update
:
dynamic-update (необязательно - по умолчанию false): указывает, что UPDATE SQL должен генерироваться привремя выполнения и может содержать только те столбцы, значения которых изменились.
В этом случае вы все еще загружаете весь объект в память, но Hibernate сгенерирует как можно меньшее UPDATE, включая только измененные ( грязные ) поля.
Другой подход состоит в том, чтобы иметь отдельные сущности для каждого варианта использования / представления.Таким образом, у вас будет сущность только с идентификатором и паролем, сущность только с адресными данными и т. Д. Все они отображаются в одну и ту же таблицу, но в другое подмножество столбцов.Это легко становится беспорядком и должно рассматриваться как последнее средство.