0

休止状態の検索 ClassBridge 内から任意の Spring サービスを使用できるかどうか疑問に思います。

概要:

私のエンティティには、インデックス付きドキュメントに入れたいすべての情報がありません。@IndexedEmbededでも取得できません。このデータは外部データ ソースから取得され、これを提供するサービスがあります。これは、インデックスを再作成する場合にのみ必要です。単一オブジェクト保存サービスのインデックスを作成する場合、一時エンティティ フィールドにこの情報を提供します。再インデックスには、MassIndexer を使用します。

私のアプリケーションは Spring MVC 環境で動作しています。アノテーション駆動の構成を使用します。したがって、サービスにアクセスするには、 @Autowired アノテーションを使用するだけで、サービスをすぐに使用できます。

解決?

Hibernate Search を使用するときの生活はそれほど簡単ではありません (または、どうすればよいかわかりません)。

追加情報を取得するために、ClassBridgeを使用することにしました。また、Spring サービス内から呼び出される単純なMassIndexerプロシージャも実装します。

私の ClassBridge では、Spring はサービスを自動配線しません。簡単な回避策を実行して ClassBridge で静的フィールドを使用し、MassIndexer 呼び出し元からサービス参照を渡すと、別の問題が発生しました。サービスは例外「セッションなし」を報告します (sessionFactory.getCurrentSession() は例外をスローします)...どこに進むべきかわかりません。

ClassBridge コード内から Spring サービスにアクセスするための推奨される方法は何ですか?

ClassBridge 内からアクティブな休止状態のセッション (または SessionFactory) を取得するにはどうすればよいですか?

お時間をいただきありがとうございます。お役に立てば幸いです。

4

2 に答える 2

0

このページ ( http://guylabs.ch/2014/02/22/autowiring-pring-beans-in-hibernate-jpa-entity-listeners/ ) のコメントは、これを処理するためのより簡単な方法を提供します。以下を呼び出すことで、Spring がオブジェクトをより明示的に自動配線することができます。

SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

ドキュメント: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/SpringBeanAutowiringSupport.html

于 2015-09-03T04:15:21.380 に答える
0

推奨される方法は、コンパイル時のウィービングと @Configurable を使用することです

于 2013-07-02T20:23:54.103 に答える