0

休止状態セッションを正しく使用する方法について、Java のコード例を教えてください。1 つのコントローラー クラスですべての休止状態の操作 (フェッチ、更新、削除) を処理する必要があります。

  private void addPersonToEvent(Long personId, Long eventId) {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();

    Person aPerson = (Person) session.load(Person.class, personId);
    Event anEvent = (Event) session.load(Event.class, eventId);
    aPerson.getEvents().add(anEvent);

    session.getTransaction().commit();
}

これは正しい方法ですか?接続プールのエラーを回避するために例外とロールバックを正しく処理するにはどうすればよいですか? 例外の後に接続が正しく閉じられなかった場合がありますか?

どうもありがとうございました

4

1 に答える 1

0

1 つのコントローラー クラスですべての休止状態の操作 (フェッチ、更新、削除) を処理する必要があります。

すべての一般的な操作 (フェッチ、更新、削除) を処理するためのスーパー クラスが必要です。スーパークラスは次のようになります。

public abstract class AbstractFacade<T> {
    private Class<T> entityClass;

    public AbstractFacade(Class<T> entityClass) {
        this.entityClass = entityClass;
    }
   public void create(T entity) {
    getSession().save(entity);
   }

  public void edit(T entity) {
    getSession().merge(entity);
  }

  public void remove(T entity) {
    getSession().remove(entity);
  }

  public T find(Object id) {
    return getEntityManager().find(entityClass, id);
  }
}
于 2013-10-04T17:00:58.943 に答える