Hola. Estoy creando una aplicacion web para el proyecto de fin de carrera con Java, Tapestry Spring e Hibernate.
Tengo varias entidades entre las cuales tengo estas dos:
public class Estudio {
private String estudioId;
private String directorio;
private Calendar fecha;
private UserProfile usuario;
....
y
public class UserProfile {
private Long userProfileId;
private String loginName;
private String encryptedPassword;
private String firstName;
Ambas mapeadas a una base de datos mediante hibernate y tal, y en donde usuario es la llave foranea mediante una relacion Lazy para acceder al usuario que subió un determinado estudio.
Bien ahora necesito hacer una tabla grid en donde listar los estudios que tengo. El problema es que aparte de listar caracteristicas propias de esa clase como el estudioId y la fecha quiero tambien en la ultima columna mostrar el usuario que lo subió y no me funciona.
Estuve mirando por internet para intentar hacerlo pero no me funcionó ninguna de las soluciones, algunas con metodos deprecated, otros en los que ponian solo la plantilla .tml pero no la clase java, otros al contrario ....
Creo que hay que añadirle en la clase java una columna más a la estructura grid pero llevo intentandolo una semana y no hay manera. O me falla o me funciona pero esa columna no aparece por ningun lado....
Os pongo como tengo mi plantilla para ver si me podeis echar una mano
<t:grid source="estudioGridDataSource" row="estudio"
rowsPerPage="rowsPerPage" exclude="directorio" class="estudios" lean="literal:true">
<p:estudioIdCell>
<a href="#" t:type="PageLink" t:page="EstudioDetails" t:context="estudio.estudioId">
${estudio.estudioId}
</a>
</p:estudioIdCell>
<p:fechaCell>
<t:output value="accountOperation.amount" format="numberFormat"/>
</p:fechaCell>
<p:usuarioCell>
<a href="#" t:type="PageLink" t:page="EstudioDetails" t:context="estudio.estudioId">
${estudio.usuario.loginName}
</a>
</p:usuarioCell>
<p:empty>
<p>${message:noStudys}.</p>
</p:empty>
</t:grid>
y donde el EstudioGridDataSource es una clase con estas propiedades.
private EstudioService estudioService;
private List<Estudiog> estudios;
private int totalNumberOfEstudios;
private int startIndex;
Esto está algo lioso pero es que copié la estructura de una que daban en los ejemplos de una asignatura.
A ver si alguien me pudiera decir como se soluciona esto porque es desesperante probar de todo y que no funcione...