Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

@DescriptionList Sentencia IN

Jorge Cano
2013-04-09
2013-04-11
  • Jorge Cano
    Jorge Cano
    2013-04-09

    Hola buenas tardes a todos, tengo un problema con la anotacion @DescriptionList. Necesito que en base a un atributo de mi entidad se filtre, la forma que pense que se podia solucionar es la siguiente

    @ManyToOne
    @DescriptionsList(descriptionProperties = "periodo", depends = "almacen", condition = "${libroContable.oid} in (Select a.compania.libro.oid FROM Almacen a WHERE a.oid = ?)", order = "${codigo} asc")
    @NoCreate
    @NoModify
    @Required   
    private CuentaContable cuentaContableGastos;
    

    Lei que se puede usar JPQL o en su defecto poner entre ${} los atributos de la entidad, para mi caso tengo este escenario.
    Mi entidad Producto tiene los siguientes atributos


    • Almacen

    • CuentaContable


    Mi entidad CuentaContable tiene los siguientes atributos

    • libroContable


    Mi entidad Almacen tiene los siguientes atributos

    • compania


    Mi entidad Compania tiene los siguientes atributos

    • libroContable

    Entonces la forma de ligar las cuentasContables a el producto es la siguiente (JPQL)

    Select c
    FROM CuentaContable c
    WHERE c.libroContable.oid IN(
    Select model.compania.libroContable.oid
    FROM Almacen model
    WHERE model.oid = ? ) // donde ? es el almacen que se selecciona al dar de alta productos

    Me podrian ayudar para ver como puedo resolverlo

    Saludos

     
  • Javier Paniza
    Javier Paniza
    2013-04-11

    Hola Jorge,

    ¿Puedes poner el error que se produce en el log?

    Si en lugar de ? pones un valor fijo, ¿te funciona?
    Si en lugar del IN (Select ...), pones un valor fijo, ¿te funciona?


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

     
  • Jorge Cano
    Jorge Cano
    2013-04-11

    Una disculpa tenia incorrecto el descriptionPorperties, quedo de la siguiente forma.

    @ManyToOne
    @DescriptionsList(descriptionProperties = "alias,codigo", depends = "almacen", condition = "${libroContable.oid} in (Select a.compania.libro.oid FROM Almacen a WHERE a.oid = ?)", order = "${codigo} asc")
    @NoCreate
    @NoModify
    @Required
    private CuentaContable cuentaContableGastos;