Error en el @Tab

Ayuda
Andrea
2013-07-15
2013-07-17
  • Andrea
    Andrea
    2013-07-15

    Hola,

    Tengo un @Tab como el siguiente:

    @Tab(filter=Filtro.class, properties = "code, name", baseCondition = "(${user} = ? or ${rol} ~ ?)")

    El cual funciona perfecto en la versión 4m5 de OX. Sin embargo, en la última versión este tab falla debido al caracter ~, el cual es una función propia de postgres. Imagino que el error se da porque creo haber leído que ahora OX utiliza JPA para generar el listado en los tabs.

    La pregunta es, de qué forma podría solucionar esto?

    Saludos y gracias.

     
  • Javier Paniza
    Javier Paniza
    2013-07-17

    Hola Andrea,

    tienes razón, dado que OpenXava utiliza JPA no puedes usar SQL nativo en la condición. La solución ideal a este problema sería tener un nuevo atributo en @Tab llamado sqlCondition, que permitiera usar SQL nativo en un tab concreto.
    Por favor, añadelo como Feature Request para que lo tengamos en cuenta.

    De momento puedes editar la clase JPAPersistenceProvider y reescribir el método createTabProvider() así:

    public ITabProvider createTabProvider() {
        return new JDBCTabProvider();               
    }
    

    Esto solucionará tu problema, pero hará que no tengas disponible algunas funcionalidades nuevas de OpenXava, como el soporte para diferentes tipos de mapeo de tablas para herencia.


    Ayuda a otros en este foro como yo te ayudo a ti.
    ¿Necesitas más ayuda? Usa el soporte profesional de OpenXava