Olá pessoal,
Estou com uma dúvida relativamente simples: quero exibir uma tabela com valores de outras tabelas (através das chave estrangeiras) no JSP.
Estou usando Hibernate e Struts 1.x …
Por exemplo:
Tenho duas tabelas:
Uma de tarefa:
@Entity @Table(name="TarefaEmap")
public class TarefaEmap {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@JoinColumn(name="idusuario", referencedColumnName="id") @ManyToOne
private Usuario idusuario;
@JoinColumn(name="idemap", referencedColumnName="id") @ManyToOne
private Emap idemap;
@JoinColumn(name="idtarefa", referencedColumnName="id") @ManyToOne
private Tarefa idtarefa;
private String valor;
private boolean executado;
private Date data;
private Time hora;
// getters and setters
}
E outra de descrição das tarefas:
@Entity @Table(name="Tarefa")
public class Tarefa {
@Id
private int id;
private String descricao;
private String observacao;
// getters and setters
}
E na minha TarefaDAO tenho a seguinte consulta:
public List<TarefaEmap> listaTarefa(Emap emap) {
return this.session.createQuery(
"select tarefa " +
"from TarefaEmap as tarefa " +
"left outer join tarefa.idusuario as usuario " +
"left outer join tarefa.idtarefa as tarefadesc " +
"where tarefa.idemap.id = :idemap").setLong("idemap", emap.getId()).list();
}
O que eu quero fazer é listar no meu JSP com um forEach as seguintes informações:
Data, Hora, Descrição da Tarefa e Usuário. Eu tentei fazer da seguinte maneira:
<c:forEach var="tarefa" items="${tarefas}">
<tr>
<td>${tarefa.data}</td>
<td>${tarefa.hora}</td>
<td>${tarefa.idtarefa.descricao}</td>
<td>${tarefa.idusuario.nome}</td>
</tr>
</c:forEach>
Mas ocorre o seguinte erro:
javax.el.PropertyNotFoundException: Property 'idtarefa' not found on type emap.modelo.TarefaEmap
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
javax.el.BeanELResolver.property(BeanELResolver.java:279)
javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
org.apache.el.parser.AstValue.getValue(AstValue.java:118)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
org.apache.jsp.ctalogevento_jsp._jspx_meth_c_005fforEach_005f0(ctalogevento_jsp.java:188)
org.apache.jsp.ctalogevento_jsp._jspService(ctalogevento_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:343)
org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:200)
org.apache.jsp.ctamenu_jsp._jspx_meth_c_005fimport_005f1(ctamenu_jsp.java:180)
org.apache.jsp.ctamenu_jsp._jspService(ctamenu_jsp.java:108)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:343)
org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:200)
org.apache.jsp.ctavancado_jsp._jspx_meth_c_005fimport_005f2(ctavancado_jsp.java:331)
org.apache.jsp.ctavancado_jsp._jspx_meth_html_005fhtml_005f0(ctavancado_jsp.java:160)
org.apache.jsp.ctavancado_jsp._jspService(ctavancado_jsp.java:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Alguém poderia me ajudar? Não sei o que estou fazendo de errado! Como eu faço para fazer esse tipo de consulta?
Obrigado.