saveOrUpdate (Object) метод Hibernate - PullRequest
0 голосов
/ 14 июня 2010

когда я использую метод saveOrUpdate (Object) Hibernate. Как я могу узнать, что строка обновлена ​​или новая строка добавлена ​​в таблицу ??? Возвращаемый тип метода saveOrUpdate (Object) недействителен, поэтому я не могу найти результат после вызова этого метода.

пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Как я понял из твоего вопроса и комментария жил.Вы можете создать прослушиватель событий и реализовать два интерфейса: IPreUpdateEventListener, IPreInsertEventListener

eq

     public class AuditEventListener : IPreUpdateEventListener, IPreInsertEventListener
    {

        public bool OnPreUpdate(PreUpdateEvent @event)
        {
            //your stuff here
            return false;
        }

        public bool OnPreInsert(PreInsertEvent @event)
        {

            //your stuff here
            return false;
        }
}

, но я думаю, что это смешно.использование ORM означает, что вы не заботитесь о постоянстве, и вся работа выполняется за единицу работы.Если вам действительно нужно вставить и обновить, просто используйте методы Save () или Update (), таким образом вы точно будете знать, какая операция выполняется.

1 голос
/ 14 июня 2010

Если ваш объект для сохранения имеет свойство идентификатора, установленное в 0 (/ id null), то это означает, что это новый объект, и он будет вставлен заново в db. После вставки hibernate установит значение id в поле идентификатора. Если для объекта уже установлено свойство идентификатора, это означает, что объект уже сохранен и его можно обновить

РЕДАКТИРОВАТЬ: Вы смотрели на перехватчики гибернации? Может быть, это полезно. пример

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