Таблица обновления Hibernate с теми же значениями без session.save или session.update - PullRequest
0 голосов
/ 15 марта 2012

Таблица обновления Hibernate с теми же значениями без session.save или session.update

Как мы можем загрузить объект (строку из базы данных) и сохранить его обратно без каких-либо изменений каких-либо значений полей.

Нам нужен hibernate для выдачи запроса UPDATE для этой строки с теми же значениями, которые были загружены. У нас есть промежуточное ПО между Hibernate и JDBC, которое изменяет данные, пока hibernate выполняет ОБНОВЛЕНИЕ.

Мы пробовали session.replicate, но он удаляет все коллекции этого объекта. то есть

class User{
        Set<Order> orders; //inversely mapped

    }
    class Order{
        User user;
    }

while doing session.replicate(user) it is issueing a following SQL

update ORDER set user=null where id=?   

Это означает, что мы теряем все наши отношения.

session.save или session.update не будут работать, поскольку мы не изменяем значения перед переходом в режим гибернации.

Есть ли другой способ заставить hibernate считать, что все поля изменены, и это должно обновить базу данных?

1 Ответ

0 голосов
/ 15 марта 2012

вы можете реализовать preflushListener для установки всех сущностей на изменение и установить dynamicupdate="false" для этого класса.

Я думаю, вы можете посмотреть и расширить одно из:

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