Что такое динамическое обновление
Атрибут динамического обновления указывает Hibernate, следует ли включать неизмененные свойства в инструкцию SQL UPDATE.
Пример динамического обновления
1.
Значение по умолчанию для dynamic-update равно false, что означает включить неизмененные свойства в инструкцию Hibernate SQL update.
Например, получите объект и попробуйте изменить его значение и обновить его.
Query q = session.createQuery("from StockTransaction where tranId = :tranId "); q.setParameter("tranId", 11); StockTransaction stockTran = (StockTransaction)q.list().get(0); stockTran.setVolume(4000000L); session.update(stockTran);
Hibernate создаст следующую инструкцию SQL update.
Hibernate: update mkyong.stock_transaction set DATE=?, PRICE_CHANGE=?, PRICE_CLOSE=?, PRICE_OPEN=?, STOCK_ID=?, VOLUME=? where TRAN_ID=?
Режим гибернации обновит все неизмененные столбцы.
2.
Если для параметра dynamic-insert установлено значение true, это означает исключить неизмененные свойства в инструкции Hibernate SQL update.
Например, получите объект и попробуйте изменить его значение и обновить его снова.
Query q = session.createQuery("from StockTransaction where tranId = :tranId "); q.setParameter("tranId", 11); StockTransaction stockTran = (StockTransaction)q.list().get(0); stockTran.setVolume(4000000L); session.update(stockTran);
Hibernate создаст другую инструкцию SQL обновления.
Hibernate: update mkyong.stock_transaction set VOLUME=? where TRAN_ID=?
Режим гибернации обновит только измененные столбцы.
Как его настроить
Вы можете настроить свойства ” динамическое обновление
” с помощью аннотации или файла сопоставления XML.
1. Аннотация
@Entity @Table(name = "stock_transaction", catalog = "mkyong") @org.hibernate.annotations.Entity( dynamicUpdate = true ) public class StockTransaction implements java.io.Serializable {
2. Сопоставление XML
Вывод
Эта небольшая настройка ” динамическое обновление ” определенно повысит производительность вашей системы, и настоятельно рекомендуется это сделать.
Следовать за
1. Спящий режим – атрибут динамической вставки пример
Оригинал: “https://mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/”