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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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í.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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);
}
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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í.
Hola José:
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.
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);
}