Domanda

I tuffarvi nelle separare mia abitudine implementazione repository da pacchetti dominio. E, probablym alcune interfacce comuni. Per esempio io voglio avere una struttura come

  com
       domain
            Foo
            FooRepository
       common
            Bar
       persistence
            BarImpl

interface FooRepository extends Bar{}

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

Come devo config questo?

È stato utile?

Soluzione

Il pick-up automatico della classe repository funziona solo se lo si inserisce nello stesso pacchetto e l'uso o il suffisso predefinito o definire il suffisso da utilizzare manualmente. Quindi nel tuo scenario che si avrebbe dovuto mettere un FooRepositoryImpl nel pacchetto domain. È possibile personalizzare il suffisso utilizzando l'attributo repository-impl-postfix. Se si desidera inserire l'applicazione in un altro pacchetto è possibile dichiarare il fagiolo implementazione personalizzata manualmente utilizzando fooRepositoryImpl come id di fagioli. La classe può quindi risiedere in qualsiasi pacchetto che si desidera.

Presumo che Bar è l'interfaccia che contiene le dichiarazioni di metodo personalizzato. In realtà si consiglia di mettere sia l'interfaccia repository personalizzati e l'attuazione nella stessa confezione e renderlo pacchetto protetto per evitare che sia a disposizione dei clienti singolarmente. In questo modo, tutti i clienti effettivamente vedere è l'interfaccia repository unificato contenente metodi di query e quelle implementate manualmente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top