クライアントからのリモート呼び出しを受け付けるRMIクラスがあります。RMIリモートメソッドでHibernateボイラープレートを自動化する方法
このクラスは、Hibernateを使用してエンティティをロードし、ビジネスロジックを実行します。通常は読み取り専用です。リモートメソッドの体のほとんどがそのように見える
現在:
try {
HibernateUtil.currentSession().beginTransaction();
//load entities, do some business logic...
} catch (HibernateException e) {
logger.error("Hibernate problem...", e);
throw e;
} catch (other exceptions...) {
logger.error("other problem happened...", e);
throw e;
} finally {
HibernateUtil.currentSession().getTransaction().rollback(); //this because it's read-only, we make sure we don't commit anything
HibernateUtil.currentSession().close();
}
私は(比較的簡単に)自動的に、これは「開こうとするために実装することができ、いくつかのパターンがあるかどうかを知りたいですセッション/すべてのメソッドでコード化することなく、Hibernate Exception/catch Hibernate resources "ビヘイビアをキャッチします。
webappsで使用されているが、HTTP要求の代わりにremotr RMIメソッド呼び出しに適用できる "open session in view"と同様のものです。
理想的には、メソッドを直接呼び出すことができますが、リフレクション渡しのメソッド名を文字列として使用しないことが理想です。
おかげさまで、Springが助けてくれるかもしれないことを知りましたが、最終的にはプロジェクトに導入する予定ですが、この段階ではオプションではありません。 –