Есть ли способ уменьшить ненужные / пустые поля во вставках SQL и обновлениях SQL?
Например, у меня есть один класс сущностей спящего режима, сопоставленный с таблицей с 10 столбцами. Заполнение данных фактически выполняется в два этапа. Когда пользователь отправит запрос, я вставлю информацию о запросе в таблицу со спящим объектом, но заполню только 7 полей. После некоторой обработки (например, дождитесь взаимодействия с другими пользователями) я заполню оставшиеся 3 поля (с идентификатором из предыдущей вставки).
Если я придерживаюсь одного класса сущностей, для второго обновления я делаю следующее:
1) Загрузить объект, идентифицируемый по идентификатору
2) Сохраните объект, который генерирует sql, который, кажется, отправляет все поля.
Кроме того, я создал два класса сущностей, и указал на одну и ту же таблицу и сохранил их отдельно.
У кого-нибудь есть лучшее предложение?
Kent
Edit:
Чего я действительно хотел бы достичь, так это что-то вроде следующего:
вставить t (id, field1, field2) (?,?,?)
обновить t set field3 =? Field4 =? где id =?
Лучшее, чего я мог достичь сейчас с dynamicUpdate = true, это
вставить t (id, field1, field2) (?,?,?)
выберите field1, field2, field3, field4 из t, где id =?
обновить t set field3 =? Field4 =? где id =?
Есть ли способ исключить это утверждение select? Исходный постоянный объект не сохраняется нигде в памяти после вставки.
Дополнительная заметка. Класс сущности аннотирован валидацией Hibernate. В настоящее время я пытаюсь достичь желаемого эффекта, поэтому я прокомментировал их. Но когда я снова включаю их, я получаю ошибки проверки из-за @NotNull и @ NotEmpty.