RichFaces 4 ExtendedDataTableをバックアップするデータモデルを@Injectできますが、EntityManagerがその作業を行う必要があります。 EntityManagerのクエリはもちろん、クラスを知る必要があり、メソッド呼び出しに渡すのではないでしょう(この場合、メソッドは自分のコードで呼び出されません)。理想的には、それはコンストラクタにあります。データモデルのCDIプロデューサメソッド
このような何か:
public class DataModel<T> {
@Inject private EntityManager em;
private Class<T> entityClass;
public DataModel(Class<T> entityClass) {
this.entityClass = entityClass;
}
//Sample method - this class will handle much more complex queries
public T findEntity(String key) {
return em.find(entityClass, key);
}
は私のバッキングBeanにこののDataModelを注入するために使用することができCDI @Producerを作成することが可能ですか?注入するEntityManagerを許可しないだろうと思う - 私はあなたが
@Inject @JType(value = MyEntity.class) DataModel<MyEntity> dataModel;
ような何かを行うことができますしかし、それは不器用なように見えたので、予選を行うことについて考えてきた、ともnew()
を呼び出すために私@Producerを必要としますデータ・モデル。また、どのように修飾子を開発者が追加する必要があるかわかりません。
これにはもっと良いアプローチがありますが、何か不足していますか?
があります。デザインパターンやフレームワークのアプリケーションの上に良いデザインではない、彼らは通信するためのツールです。 –