0

私のプロジェクトには、Stateless Entity Beans(EJB 3.x) と EJB Beans(EJB 2.x) およびその他のクラスがあります。Entity Bean を EJB Bean に注入したい。したがって、JNDI の方法、つまり (BeanName#completename) を使用して注入することはできますが、JNDI ルックアップなしで別のエンティティ Bean にエンティティ Bean を注入するのと同じように、@EJB を使用して注入したいと考えています。これらの Bean は両方とも異なるモジュールの一部ですが、同じサーバーにデプロイされています。私はeclipselinkでweblogicを使用しています。

4

2 に答える 2

1

エンティティ Bean が EJB Bean に注入されることはありません。EntityManager を使用して、エンティティ Bean で DB 操作を実行できます。データベース操作エンティティを操作するには、エンティティを EntityManager 永続コンテキストに関連付ける必要があります。そのため、永続化状態になるまでエンティティを操作できません。

すべてのトランザクション スコープの永続コンテキストは、次のように @PersistentContext を EntityManager オブジェクトに注入することによって構成されます。

@PersistenceContext(name="PersistentUnitName")
private EntityManager entityManager;
于 2013-10-02T07:49:21.267 に答える
0

EJB 3 または EJB 2 を使用していますか? EclipseLink は EJB 2 EntityBean をサポートせず、EJB 3 エンティティのみをサポートします。

Entity Bean を注入することはできません。意味がありません。EntityManager を介してデータベースからクエリを実行する必要があります。@PersistenceContext を使用して EntityManager を注入できます。

見る、

http://en.wikibooks.org/wiki/Java_Persistence/Runtime#Java_Enterprise_Edition

于 2013-06-03T13:42:41.010 に答える