Hibernate: обновление entites через собственный SQL или сгенерированные запросы - PullRequest
0 голосов
/ 03 ноября 2011

В спящем режиме мы можем обновлять сущности в БД различными способами. Если мы изменим присоединенную сущность в открытом сеансе, а затем передадим изменения (закрыв сеанс), все изменения будут сохранены в БД. Но, например, конкретная сущность имеет много полей. И мы хотим изменить только пару из них. Затем hibernate сгенерирует запрос, в котором обновит все поля сущности: изменено и не изменено. Поэтому в сгенерированном запросе обновления hibernate есть издержки. Если мы знаем, какие поля объекта будут изменены, было бы лучше создать SQL-запрос navite, где мы можем обновить только указанные поля? Какие плюсы и минусы?

1 Ответ

1 голос
/ 03 ноября 2011

Вы можете настроить Hibernate для обновления только измененных полей следующим образом:

@org.hibernate.annotations.Entity(dynamicUpdate = true)

Однако фактический эффект этого параметра следует тщательно проверить, поскольку в некоторых случаях он может снизить производительность.

См. Также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...