Ajuda com com Hibernate e EL

4 respostas
orlando_neto

Olá pessoal eu estou precisando da ajuda de vcs, eu crie um view de consulta de produtos, onde a tabela produto recebe 2 chaves estrangeiras(fk),mas na hora que eu rodo a aplicação no tomcat,ele me retorna as seguintes exeções:

[color=red]org.apache.jasper.JasperException: javax.el.ELException: Error reading ‘descricao’ on typebr.com.siscom.model.bean.Unidade$$EnhancerByCGLIB$$1ddbcdb1 [/color]

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)

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)

br.com.siscom.controller.SiscomController.processarRequisicao(SiscomController.java:32)

br.com.siscom.controller.SiscomController.doGet(SiscomController.java:35)

javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

br.com.siscom.controller.FiltroTransacaoHibernate.doFilter(FiltroTransacaoHibernate.java:34)

root cause

[color=red]javax.el.ELException: Error reading ‘descricao’ on typebr.com.siscom.model.bean.Unidade$$EnhancerByCGLIB$$1ddbcdb1 [/color]

javax.el.BeanELResolver.getValue(BeanELResolver.java:66)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

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:925)

org.apache.jsp.consulta_005fproduto_jsp._jspx_meth_c_005fforEach_005f0(consulta_005fproduto_jsp.java:138)

org.apache.jsp.consulta_005fproduto_jsp._jspService(consulta_005fproduto_jsp.java:89)

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)

br.com.siscom.controller.SiscomController.processarRequisicao(SiscomController.java:32)

br.com.siscom.controller.SiscomController.doGet(SiscomController.java:35)

javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

br.com.siscom.controller.FiltroTransacaoHibernate.doFilter(FiltroTransacaoHibernate.java:34)

root cause

[color=red]org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.com.siscom.model.bean.Unidade#1][/color]

org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:377)

org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)

org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:68)

org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)

org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)

br.com.siscom.model.bean.Unidade$$EnhancerByCGLIB$$1ddbcdb1.getDescricao()

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

javax.el.BeanELResolver.getValue(BeanELResolver.java:62)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)

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:925)

org.apache.jsp.consulta_005fproduto_jsp._jspx_meth_c_005fforEach_005f0(consulta_005fproduto_jsp.java:138)

org.apache.jsp.consulta_005fproduto_jsp._jspService(consulta_005fproduto_jsp.java:89)

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)

br.com.siscom.controller.SiscomController.processarRequisicao(SiscomController.java:32)

br.com.siscom.controller.SiscomController.doGet(SiscomController.java:35)

javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

br.com.siscom.controller.FiltroTransacaoHibernate.doFilter(FiltroTransacaoHibernate.java:34)

Eu estou usando o Hibernate para fazer a pessistência. Desde agora já agradeço as ajudas…

4 Respostas

S

o erro ocorre já na inicialização do tomcat?
cola os fontes aqui também.
[]'s

orlando_neto

A minha view produtos é essa:
<c:forEach var=“produto” items="${produtos}">


${produto.descricao}
${[color=red]produto.unidade.descricao[/color]}// <- Aqui é onde acontece o erro!
${{[color=red]produto.fornecedor.nome[/color]}// <-Aqui é onde acontece o erro! Atualizar Excluir

//

O meu bean é esse.
[color=blue]@Entity[/color]
public class Produto {

private Integer codigo;
private String descricao;
private Double vlrcompra;
private Double vlrvenda;
private Integer estoque;
private Integer critico;
private String auditoria;
private Unidade unidade;
private Fornecedor fornecedor;

[color=blue]@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)[/color]	
            public Integer getCodigo() {
	return codigo;
}
public void setCodigo(Integer codigo) {
	this.codigo = codigo;
}
public String getDescricao() {
	return descricao;
}
public void setDescricao(String descricao) {
	this.descricao = descricao;
}
public Double getVlrcompra() {
	return vlrcompra;
}
public void setVlrcompra(Double vlrcompra) {
	this.vlrcompra = vlrcompra;
}
public Double getVlrvenda() {
	return vlrvenda;
}
public void setVlrvenda(Double vlrvenda) {
	this.vlrvenda = vlrvenda;
}
public Integer getEstoque() {
	return estoque;
}
public void setEstoque(Integer estoque) {
	this.estoque = estoque;
}
public Integer getCritico() {
	return critico;
}
public void setCritico(Integer critico) {
	this.critico = critico;
}
public String getAuditoria() {
	return auditoria;
}
public void setAuditoria(String auditoria) {
	this.auditoria = auditoria;
}
[color=blue]@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="unidade_codigo")[/color]
public Unidade getUnidade() {
	return unidade;
}
public void setUnidade(Unidade unidade) {
	this.unidade = unidade;
}
[color=blue]@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="fornecedor_codigo")[/color]
public Fornecedor getFornecedor() {
	return fornecedor;
}
public void setFornecedor(Fornecedor fornecedor) {
	this.fornecedor = fornecedor;
}
[color=blue]@Transient[/color]
public boolean isValido() {
	if(descricao != null && descricao.length() > 3 && unidade != null && fornecedor != null )
		return true;
	return false;
}

}

orlando_neto

Não!, O erro só acontece quando eu estou na aplicação e dou um click no link da view,aí o hibernate faz todo o processo de consulta para selecionar aview,é nesse ponto que aparece as exeções…

S

Como está sua classe Unidade?
[]'s

Criado 11 de fevereiro de 2009
Ultima resposta 12 de fev. de 2009
Respostas 4
Participantes 2