RESOLVIDO Listar com filtro Hibernate Annotations

4 respostas
diogoprosoft

Galera preciso listar em um grid dados que pertence ao codigo do formulario, mais nao estou conseguindo fazer isso com o hibernate annotations, vejam como estou fazendo:

Na minha classe estou mapeando assim

@NamedQuery(name="endereco",query="select nm_logradouro from endereco e where e.endereco_id_pessoa =:idPessoa")

Na meu persistenciaDAO estou fazendo assim

public List listarFiltro(String filtro) throws Exception
    {
        Session session = HibernateFactory.getSession();
        Transaction transaction = session.beginTransaction();

        List objts;
        objts = null;
        Query q = session.getNamedQuery("endereco");
        q.setString("idPessoa", filtro);
        transaction.commit();        
        objts = q.list();
        session.close();
        return objts;
    }

porem quando vai passar pela linha “Session session = HibernateFactory.getSession();” da um erro dizendo:

endereco is not maped (select nm_logradouro from endereco e where e.endereco_id_pessoa =:idPessoa)

Alguem sabe como posso fazer isso?

4 Respostas

diguix

O hibernate não está achando a classe que mapeia a tabela endereco;

tente colocar o nome da classe:
select nm_logradouro from Endereco e where e.endereco_id_pessoa =:idPessoa

Não sei se está assim, mas estopu deduzindo que o nome da classe seja Endereco com o e maiúsculo;

Abraços;

diogoprosoft

Obrigado pela ajuda, porem agora deu outro erro

13:17:34,328 ERROR SessionFactoryImpl:363 - Error in named query: endereco.igual
org.hibernate.QueryException: could not resolve property: endereco_id_pessoa of: com.corp.bean.Endereco [select nm_logradouro from com.corp.bean.Endereco e where e.endereco_id_pessoa=:idPessoa]
	at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
	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.<init>(HQLQueryPlan.java:77)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(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.<init>(SessionFactoryImpl.java:352)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
	at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
	at hibernate.HibernateFactory.<clinit>(HibernateFactory.java:47)
	at hibernate.PersistenciaDAO.listarFiltro(PersistenciaDAO.java:130)
	at com.corp.logic.EnderecoLogic.listaEndereco(EnderecoLogic.java:26)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:61)
	at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:32)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
	at org.vraptor.core.DefaultController.execute(DefaultController.java:46)
	at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)

O que pode ser agora?

diogoprosoft

Resolvido

Fiz assim

tirei o “@NamedQuery

e no persistenciaDAO coloquei

public List listarFiltro(Class clazz,String filtro) throws Exception
    {
    	Session session = HibernateFactory.getSession();
        Transaction transaction = session.beginTransaction();

        List objts;
        objts = null;
        Criteria criteria = session.createCriteria(clazz);        
        Criterion crit = Restrictions.sqlRestriction("endereco_id_pessoa = "+filtro+"");
        criteria.add(crit);
        
        transaction.commit();
        objts = criteria.list();
        session.close();
        return objts;
    
    }
diguix

Diogo,

não estou bem lembrado, mas na solução anterior que você estava utilizando(@NamedQuery), substitua o “endereco_id_pessoa” pelo nome da várialvel que você mapeou para esta coluna( o atributo em java);
Seria uma solução mais bonita, não que esteja errada está que você adotou;

de uma olhada : http://blogs.sun.com/JPQL01/entry/named_query_in_java_persistence

Abraços

Criado 6 de março de 2009
Ultima resposta 6 de mar. de 2009
Respostas 4
Participantes 2