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