1

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

  com
       domain
            Foo
            FooRepository
       common
            Bar
       persistence
            BarImpl

interface FooRepository extends Bar{}

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

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

4

1 に答える 1

3

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

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

于 2011-09-04T20:04:09.393 に答える