Erro ao usar named query

3 respostas
W

\CLASSE COM A RESPECTIVA NAMED QUERY

package jcalendario;

import java.util.Collection;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

import javax.persistence.ManyToMany;

import javax.persistence.NamedQueries;

import javax.persistence.NamedQuery;

import javax.persistence.Table;
@Entity

@Table(name = curso)

@NamedQueries({

@NamedQuery(name = Curso.findByIdCurso, query = SELECT c FROM Curso c WHERE c.idCurso = :idCurso),

@NamedQuery(name = Curso.findByDescricaoCurso, query = SELECT c FROM Curso c WHERE c.descricaoCurso = :descricaoCurso)

})

public class Curso implements java.io.Serializable {
@Id
@GeneratedValue
@Column(name="id_curso")
private int idCurso;

@Column(name="descricao_curso", nullable = false)
private String decricaoCurso;

public int getIdCurso() {
    return idCurso;
}

public void setIdCurso(int idCurso) {
    this.idCurso = idCurso;
}

public String getDecricaoCurso() {
    return decricaoCurso;
}

public void setDecricaoCurso(String decricaoCurso) {
    this.decricaoCurso = decricaoCurso;
}

}

//USANDO A NAMED QUERY

Query query = session.getNamedQuery(Curso.findByDescricaoCurso);

query.setString(descricaoCurso, new String(PRE UNIVERSITARIO));

ArrayList l = new ArrayList();

l = (ArrayList) query.list();

Curso encontrado = (Curso) l.get(0);

System.out.println(encontrado.getIdCurso());

//ERRO

10:07:54,539  INFO SettingsFactory:313 - Named query checking : enabled

10:07:54,739  INFO SessionFactoryImpl:161 - building session factory

10:07:55,858  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured

10:07:56,495 ERROR SessionFactoryImpl:363 - Error in named query: Curso.findByDescricaoCurso

org.hibernate.QueryException: could not resolve property: descricaoCurso of: jcalendario.Curso [SELECT c FROM jcalendario.Curso c WHERE c.descricaoCurso = :descricaoCurso]

at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)

Exception in thread main org.hibernate.HibernateException: Errors in named queries: Curso.findByDescricaoCurso

at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:365)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

at jcalendario.Main.main(Main.java:41)

at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)

at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1362)

at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)

at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)

at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:567)

at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)

at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)

at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)

at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)

at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3525)

at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762)

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

at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)

at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)

at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)

at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)

at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)

at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:402)

at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:352)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

at jcalendario.Main.main(Main.java:41)

ALGUEM PODERIA ME AJUDAR?!]
DESDE JA AGRADECO.

3 Respostas

Foxlol

O atributo da tua classe tah como decricaoCurso,

Mude para descricaoCurso.

Flw

fiaux

Interprete a mensagem:

Conforme disse Foxlol, seu atributo está escrito como decricaoCurso,

atoempotencia

Kra’s idiotice minha vacilei por um “s”!!!
Muito obrigado a vc’s.

Criado 27 de maio de 2008
Ultima resposta 27 de mai. de 2008
Respostas 3
Participantes 4