Colocar el repositorio implúblate en no un paquete base
-
22-10-2019 - |
Pregunta
No separé mi implementación de repositorio personalizado del paquete de dominio. Y, probablemente, algunas interfaces comunes. Por ejemplo, quiero tener una estructura como
com
domain
Foo
FooRepository
common
Bar
persistence
BarImpl
interface FooRepository extends Bar{}
<jpa:repositories base-package="com.domain" /> // smt else?
¿Cómo debería configurar esto?
Solución
La recolección automática de la clase de repositorio solo funciona si la coloca en el mismo paquete y usa el postfix predeterminado o define el sufijo para usar manualmente. Entonces, en tu escenario, tendrías que colocar un FooRepositoryImpl
en el domain
paquete. Puedes personalizar el sufijo usando el repository-impl-postfix
atributo. Si desea colocar la implementación en otro paquete, puede declarar el bean de implementación personalizado utilizando manualmente fooRepositoryImpl
Como identificación de frijoles. La clase puede residir en cualquier paquete que desee.
yo asumo eso Bar
es la interfaz que contiene las declaraciones del método personalizado. En realidad, recomendamos poner la interfaz de repositorio personalizada y la implementación en el mismo paquete y hacer que el paquete sea protegido para evitar que esté disponible para los clientes individualmente. De esta manera, todos los clientes realmente ven es la interfaz de repositorio unificada que contiene métodos de consulta y los implementados manualmente.