0

パラメータに応じてオブジェクトを作成するプロデューサー メソッドを作成するにはどうすればよいですか?

私の目標は、アプリケーションのさまざまなクラスに を注入できるようにすることCrudServiceですが、サービスが使用されるクラス (例: ) でパラメーター化することですUser.class

次のコードはもちろん機能しませんが、私の意図を示しています。

@Produces
@JPAContainer(Class type) //something like this?
public JPAContainer getJPA() {
    @PersistenceContext
    private EntityManager em;

    @Produces
    @JPAContainerAnnot
    public JPAContainer getJPAContainer() {
       return JPAContainerFactory.make(type, em); //eg: class = User.class, Person.class
    }
}

@Stateless
public class CrudServiceUser() {
   @Inject
   @JPAContainer(type = User.class) //something like this parameter
   private JPAContainer container;
}

@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({FIELD,METHOD,PARAMETER,TYPE})
public @interface JPAContainer {

}
4

1 に答える 1

5

InjectionPointはい、プロデューサー メソッドにオブジェクトを挿入できます。修飾子の type 属性は である必要があります@Nonbinding。から、InjectionPoint注入ポイントの注釈への参照を取得し、JPAContainer を見つけてそこから値を読み取ることができます。

于 2013-10-05T21:59:57.037 に答える