Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Wrapper (creo que se llama asi)

Buenas,

Llevo mucho rato con esto y creo que ha llegado la hora de buscar algo de ayuda.

Estoy empezando a trabajar con zk framework e hibernate (eclipse hibernate utils) y tengo un problema tonto.
Para mostrar en zk un combo, utiliza el toString de los objetos que hay en la lista que le pasas.
El problema que tengo es que el objeto en cuestion se autogenera con hibernate utils, con lo que cada vez que regenero codigo, tengo que volver a añadir el toString.

Hay alguna manera de hacer un wrapper para que no tenga que estar reescribiendo todo el rato?

Muchas gracias

febrero 1, 2012 | Unregistered Commenterivancac

Seguro que hay alguna opción para que no se generen las clases todo el rato.
De todas formas podrías crearte tu propia clase con su propio toString. Y que el toString de esta clase pintase los que tu quieras de las clases que genera hibernate. Esta clase sería la que pasarías al combo.

febrero 1, 2012 | Registered Commenterrobertiano

No es que se generen todo el rato, es que yo quiero regenerar el código ya que de momento estoy con muchos cambios en la base de datos.
Mas o menos he intentado lo que tu dices:
- Hibernate me genera la clase UsuariosHI.
- Yo creo la clase UsuariosBE que extiende UsuariosHI e implemento toString()
El problema es que cuando yo hago la llamada hibernate obtengo un List<UsuariosHI> y no tengo manera de transformar/usar de manera automatica UsuariosBE.

Creo que ahora queda más claro el problema.

febrero 1, 2012 | Unregistered Commenterivancac

Podrías intentar la implementación mediante un ListModel, de manera similar a como se hace en Swing.
Los ListModel usan Object, por lo que no necesitarías convertir los datos a String.

febrero 1, 2012 | Registered Commenterchoces

En zk, ya se usa listmodel, pero al final para poner lo que es la descripcion en el combo, usa el toString del objeto que tiene la lista.

febrero 1, 2012 | Unregistered Commenterivancac

Buenas, ya he encontrado la solución:
A través del fichero reveng.xml indicamos que la columna que queramos forma parte del toString(), en mi caso:

<table name="GEST_EMPRESAS">
<column name="D_EMPRESA">
<meta attribute="use-in-tostring">true</meta>
</column>
</table>

Después modificamos el fichero PojoToString.ftl que se encuentra en la ruta:
Eclipse\plugins\org.hibernate.eclipse.libs_3.4.0.v20111213-1944-H40-M5\lib\tools\hibernate-tools.jar
Le modifcamos como creamos conveniente.

febrero 2, 2012 | Registered Commenterivancac