質問

Hibernate で SEAM フレームワークを使用したいのですが、EJB は使用したくありません。EJBは使えません。

最初の質問は、EntityManager を使用できるかということです。それともEntityManagerはEJBの一部ですか?

SEAM コンポーネントで Hibernate を使用するためのアクセスを取得するにはどうすればよいですか?

ありがとう、フィリップ

役に立ちましたか?

解決

Seam では、Hibernate または JPA (EntityManager) のいずれかを使用できます。EJBに関係なく動作します。必要に応じて、プレーンな POJO を使用できます。

SEAM コンポーネントで Hibernate を使用するためのアクセスを取得するにはどうすればよいですか?

ここで休止状態の設定を行います WEB-INF/components.xml

セッションファクトリー 設定

<persistence:hibernate-session-factory name="sessionFactory" cfg-resource-name="app.cfg.xml"/>

app.cfg.xml が配置される場所 クラスパスのルート

セッション 設定

<persistence:managed-hibernate-session name="session" hibernate-session-factory="#{sessionFactory}" auto-create="true"/>

トランザクション管理 設定

<!--It takes care of calling begin and commit in the underlying Transaction API-->
<!--Here a Hibernate Transaction API-->
<tx:hibernate-transaction session="#{session}"/>

Hibernate セッションを挿入するには、次を使用できます

/**
  * Seam lookup Seam enabled components Through its referenced name - session 
  */
private @In Session session;

Seam はデフォルトで Java Server Faces を使用しますが、任意の MVC フレームワークで動作することに注意してください。必要に応じて、独自の MVC 機能も作成できます。を見てみましょう JBoss Seam チュート

他のヒント

シームウェブサイトには、開始するには良い場所です。フレームワークのドキュメントがたくさんあります。

FAQから:

  

私が使用するEJB 3を使用する必要がありますか   縫い目ですか

     

まず、それは理解することが重要です   EJB 3含まれるセッションBeanこと、   メッセージ駆動型Bean、およびJava   永続化API。すべての縫い目向き   3つの成分の種類、それらを作ります   使いやすく、貴重なを提供   機能強化。しかし、Seamは、平行しています   非EJBプログラミングのサポート   モデル、最も顕著なのJavaBeansと   ネイティブ休止状態。の選択は、だから、   どのような使用には、あなた次第です。 Seamの   最大の強みは、それが提供することです   双方の間で統一されたアーキテクチャ   EJBと非EJBモデル。その意味   あなたがいずれかを使用する方法を学習したら、   自動的に使用する方法を知っています   他ます。

HibernateのSessionを取得する別の方法は、EntityManagerの上デリゲートメソッドを使用することです。

Session session = (Session)entityManager.getDelegate();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top