質問

カスタムリポジトリの実装をドメインパッケージから分離しません。そして、おそらくいくつかの一般的なインターフェイス。たとえば、ような構造が必要です

  com
       domain
            Foo
            FooRepository
       common
            Bar
       persistence
            BarImpl

interface FooRepository extends Bar{}

<jpa:repositories base-package="com.domain" /> // smt else?

これをどのように構成する必要がありますか?

役に立ちましたか?

解決

リポジトリクラスの自動ピックアップは、まったく同じパッケージに配置し、デフォルトのポストフィックスを使用するか、接尾辞を定義して手動で使用する場合にのみ機能します。したがって、シナリオでは、配置する必要があります FooRepositoryImpldomain パッケージ。を使用してサフィックスをカスタマイズできます repository-impl-postfix 属性。実装を別のパッケージに配置したい場合は、カスタム実装Beanを手動で使用して宣言できます fooRepositoryImpl Bean IDとして。クラスは、必要なパッケージに存在することができます。

私はそれを想定しています Bar カスタムメソッド宣言を含むインターフェイスです。実際、カスタムリポジトリインターフェイスと実装の両方をまったく同じパッケージに入れることをお勧めし、クライアントが個別に利用できるようにパッケージを保護することをお勧めします。これにより、クライアントが実際に表示するすべてのクライアントは、クエリメソッドと手動で実装されたメソッドを含む統合リポジトリインターフェイスです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top