2016-08-22 3 views
0

Я создаю веб-сервис Джерси, используя Hibernate. Одним из доступных способов обновляет запись в базе данных, я делаю так:Hibernate проверить, удалось ли обновить запись

private Boolean updateSingleRecord(Session session, Person updatedRecordData) 
{ 
    try 
    { 
     short id = updatedRecordData.getPersonId(); 
     Person per = (Person) session.load(Person.class, id); 
     per.setPersonEmail(updatedRecordData.getPersonEmail()); 
     per.setPersonMobile(per.getPersonMobile()); 
     transaction.commit(); //was defined earlier in the code 
     return true; 
    } 
    catch(Exception e) 
    { 
     return false; 
    } 
} 

Поля определяют таким образом, что мобильный телефон должен иметь уникальное значение. Если я обновляю объект до уже существующего значения, я не получу никакой ошибки, но значение просто не изменится. Как определить, было ли внесено изменение после фиксации без сравнения начального и нового значений?

ответ

0

Hibernate Interceptor, который будет действовать как триггер в таких событиях, как создание, изменение и обновление. http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/events.html, убедитесь, что объект изменен и сохранен.

Вы можете сделать новый сессионный-перехватчик сферу в реализации весны в Hibernate 4

Session session = s.withOptions().interceptor(new MyInterceptor().openSession(); 
+0

ли это прояснить ситуацию? – pacman

Смежные вопросы