es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Con Quarkus y Panache, especifique las entidades a usar desde una biblioteca externa.

El proyecto incluye múltiples microservicios.

Todas mis entidades Panache se declaran en su propio proyecto, y este proyecto se incluye como una dependencia de Maven en los otros proyectos que las necesitan. La razón por la que están centralizadas en una biblioteca externa es porque varios proyectos usarán la misma base de datos (la mayoría de ellas en solo lectura).

Mi problema es que la biblioteca contiene todas las entidades de todos los proyectos. Por lo tanto, cualquier proyecto que incluya esta biblioteca creará una base de datos que incluirá todas las tablas de todas las entidades declaradas.

¿Cómo puedo configurar Quarkus para elegir qué entidad o qué carpeta de entidades usar en lugar de utilizar cada entidad detectada en la librería externa?

Editar – Lo que he intentado:
– configurar quarkus.hibernate-orm.packages=my.specific.entities.package en application.properties. Resultado: sin efecto

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para configurar Quarkus y elegir qué entidad o qué carpeta de entidades utilizar en lugar de utilizar todas las entidades detectadas en la biblioteca externa, puedes seguir los siguientes pasos:

    1. Crea un archivo persistence.xml en la carpeta META-INF de tu proyecto.
    2. Especifica las clases de entidad que deseas utilizar en las etiquetas <class> del archivo persistence.xml.
    3. Establece la propiedad quarkus.hibernate-orm.xml.mappings en tu archivo application.properties para que apunte a la ubicación de tu archivo persistence.xml.

    Por ejemplo, si deseas utilizar solo las entidades ubicadas en el paquete my.specific.entities.package, puedes crear un archivo persistence.xml con el siguiente contenido:

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd" version="2.2">
        <persistence-unit name="my-pu">
            <class>my.specific.entities.package.Entity1</class>
            <class>my.specific.entities.package.Entity2</class>
            <!-- Agrega más clases de entidad aquí -->
        </persistence-unit>
    </persistence>
    

    Luego, en tu archivo application.properties, establece la propiedad quarkus.hibernate-orm.xml.mappings para que apunte al archivo persistence.xml:

    quarkus.hibernate-orm.xml.mappings=my-persistence.xml
    

    Esto le indicará a Quarkus que solo utilice las entidades especificadas en el archivo persistence.xml, en lugar de utilizar todas las entidades detectadas en la biblioteca externa.

Comments are closed.