Boa tarde Pessoal.
To com uma duvida em um codigo de uma classe do meu projeto. Eu tenho uma classe que possui varias propriedades de objetos relacionados, dentre eles uma propriedade Enum. É possivel eu recuperar essa propriedade. Ex: Classe ser Procurada./**
* @author Fernando Gomes <[email removido]> [09/01/2007]
* @hibernate.class table="avaliacao_trabalho"
*/
public class AvaliacaoTrabalho implements Loggable, Serializable {
private Long id;
private Trabalho trabalho;
private boolean preventiva;
private boolean corretiva;
private boolean agenteMudanca;
private boolean consultoria;
private boolean fiscalizadora;
private String consideracoes;
private Avaliacao avaliacao;
private boolean finalizada;
private Date dataAvaliacao;
public enum Avaliacao {
OTIMO("Ótimo"),
BOM("Bom"),
REGULAR("Regular"),
PESSIMA("Péssima");
private String valor;
Avaliacao(String valor) {
this.valor = valor;
}
public String getValor() {
return valor;
}
public String toString() {
return valor;
}
}
/**
* Constructor
*/
public AvaliacaoTrabalho() {
}
/**
* @return
*/
public Avaliacao getAvaliacao() {
return this.avaliacao;
}
/**
* @param avaliacao
*/
public void setAvaliacaoHibernate(String avaliacao) {
if (avaliacao == null) {
this.avaliacao = null;
} else {
for (Avaliacao aval : Avaliacao.values()) {
if (avaliacao.trim().equals(aval.getValor())) {
this.avaliacao = aval;
return;
}
}
}
}
}
A minha SQL esta assim:
public List<AvaliacaoTrabalho> findTrabalhosByAvaliacao(Collection<String> param) {
// TODO Auto-generated method stub
String sql = "from AvaliacaoTrabalho as avaliacaoTrab " +
"inner join avaliacaoTrab.trabalho as t " +
"inner join t.relatorioAuditoria as rel " +
"where avaliacaoTrab.avaliacao like ? or avaliacaoTrab.avaliacao like ?";
List<AvaliacaoTrabalho> trabalhos = getHibernateTemplate().find(sql, param.toArray());
return trabalhos.size() > 0 ? trabalhos : null;
}
Ele esta dando esse erro?
Caused by: org.hibernate.QueryException: could not resolve property: avaliacao of: com.navita.suzano.auditoria.model.entity.AvaliacaoTrabalho [from com.navita.suzano.auditoria.model.entity.AvaliacaoTrabalho as avaliacaoTrab inner join avaliacaoTrab.trabalho as t inner join t.relatorioAuditoria as rel where avaliacaoTrab.avaliacao.valor like ? or avaliacaoTrab.avaliacao.valor like ?]
at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:37)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1265)
at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:372)
at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:539)
at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:221)
at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:172)
at org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:139)
at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:462)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4316)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1211)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4032)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3662)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1708)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at org.springframework.orm.hibernate3.HibernateTemplate$31.doInHibernate(HibernateTemplate.java:846)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366)
... 81 more
Esse campo avaliacao é o meu Enum como consta no codigo.
Agradeco a ajuda de todos...
Obrigado