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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top