Menu

createNativeQuery no tiene en cuenta el esquema correcto

JOSE ELIAS
2024-05-17
2024-05-21
  • JOSE ELIAS

    JOSE ELIAS - 2024-05-17

    En la aplicación en la que estoy trabajando el acceso es multiempresa y en cuanto hago una XPersistence.getManager().createNativeQuery("sql") se lanza siempre sobre la empresa matriz y no sobre la empresa (esquema) en el que está logueado el usuario.

    Tengo que seleccionar el esquema actual? ¿Cómo? o se trata de un bug.

     

    Last edit: JOSE ELIAS 2024-05-17
  • JOSE ELIAS

    JOSE ELIAS - 2024-05-17

    Lo he resuelto usando XPersistence.getDefaultSchema() para hacer las nativeQuery.
    Lo que no tengo claro es que no sea un bug de OX o hay que hacerlo así.

     
  • Javier Paniza

    Javier Paniza - 2024-05-21

    Hola José:

    Lo que no tengo claro es que no sea un bug de OX

    No es bug de OpenXava, porque si usa una native query estás escribiendo directamente el código final SQL que se enviará al servidor, es tu responsabilidad hacerlo bien, incluido especificar los nombres de esquemas y tablas.


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • JOSE ELIAS

    JOSE ELIAS - 2024-05-21

    Muchas gracias, me quedo tranquilo. Si le puede ayudar a alguien ahí va:

    He creado esta función y donde esta la tabla a la que consultar lo cambio por Util.getEsquemaEntity("mi tabla")

    y esta es la función, aunque es muy simple, aquí está:
    public static String getEsquemaEntity(String entity) {
    //LOG.info(Util.userLog() + "--------------------------------------------defaultSchema:" + (XPersistence.getDefaultSchema()==null?entity:XPersistence.getDefaultSchema()+"."+entity));
    return (XPersistence.getDefaultSchema()==null?entity:XPersistence.getDefaultSchema()+"."+entity);
    }

     

Log in to post a comment.