2016-08-22 14 views
0

Hibernateを使用してJersey Webサービスを作成しています。利用可能な方法の一つは、私がこのようにやっているデータベースのレコードを更新している:レコードの更新が成功したかどうかを確認します。

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インターセプタ。 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

関連する問題