3

次のコードを検討してください。

public class UserDAOImpl implements UserDAO {

 private HibernateTemplate hibernateTemplate;
 public void setSessionFactory(SessionFactory sessionFactory){
  this.hibernateTemplate = new HibernateTemplate(sessionFactory);
  }

 public void saveUser(User user) {
 hibernateTemplate.saveOrUpdate(user);
 }

 public void deleteUser(User user) {
 hibernateTemplate.delete(user);
 }

}

の主なタスクの 1 つはHibernateTemplate、セッションを透過的に開いたり閉じたりすることです。

上記のコードには 2 つのメソッドがsaveUser()ありdeleteUser()、質問したいのは次のとおりです。

1)HibernateTemplateこれら 2 つのメソッドに対して 2 つの個別のセッションを作成し、この場合、セッションの終了/フラッシュが発生したとき。

2)スプリングトランザクションと同じですか?春には、メソッド呼び出しとセッションの開始時にトランザクションがアドバイスされ、メソッド/トランザクションの境界でセッションが閉じられますか?

4

1 に答える 1

0

デフォルトのフラッシュモードはFlushMode.AUTOです。以下のリンクをご覧ください。私はそれがあなたの質問に答えると思います。

http://static.springsource.org/spring/docs/1.2.9/api/org/springframework/orm/hibernate3/HibernateAccessor.html#setFlushMode(int)

http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/FlushMode.html

于 2012-09-02T11:22:57.800 に答える