2017-10-09 6 views
1

このように、JSF、Spring(DI)、JPA、Spring Dataを使用するWildFly10でアプリケーションを実行しています。 今、CDIに移動してSpring(DI)を削除しようとしています。今のところ、Spring Dataを保存します。CDI環境でのバネデータのカスタム動作の設定方法

したがって、CDIをセットアップしてEntityManagerプロデューサを作成しました。

@Produces 
@Dependent 
@PersistenceContext 
public EntityManager entityManager; 

したがって、CDIとすべてのリポジトリを挿入することができます。

@EnableJpaRepositories(basePackagesは= { "com.foo.repository"}、repositoryFactoryBeanClass = CustomJpaRepositoryFactoryBean.class

: は、しかし、私の元の環境に我々はこのように私のSpringConfigurationで定義されたカスタムリポジトリの工場を持っていました

問題は、このrepositoryFactoryBeanClass = CustomJpaRepositoryFactoryBean.classをCDI環境でどのように定義できますか?

答えて

0

JpaRepositoryFactoryBeanの設定はthe code where it gets instantiatedのように現在の実装では許可されていません。

だから私は、次のオプションを持っていると思います:

  1. はインスタンス化プロセスを再実装。

  2. 公開feature request

  3. do 2. 1.再利用可能な方法で、問題のPRとして結果を提出してください。

0

この問題を解決しようとしたとき、私はカスタムインプラントが取り上げられていないことを発見しました。しかし、この質問で提案されている解決策は私に役立った:https://stackoverflow.com/a/38541669/188624

基本的にJava8のデフォルトのインタフェース方法を使って追加の機能を提供している。 "CDI.current()。select"メソッドを使用してエンティティマネージャを取得する必要がありましたが、プロパティインジェクションはもちろん動作しません。

私はSpring Data JPA 2.0.0

でテストしました