Hibernate erro ao usar .class ou Type()

0 respostas
brunohansen

Olá pessoal.

Estou usando o Hibernate 3.6.7 e não consigo usar o .class ou Type de jeito nenhum.

Meu JPQL é esse:

SELECT o FROM lulu.teste.OrganisationType as o WHERE (o.class <> UnitType) ORDER BY o.id ASC

ou 

SELECT o FROM lulu.teste.OrganisationType as o WHERE (Type(o) <> UnitType) ORDER BY o.id ASC

O SQL gerado é sempre:

select
        organisati0_.org_type_id as obj1_14_,
        
        ...

        organisati0_10_.cat_code as cat3_161_,
        case 
            when organisati0_6_.task_frmtn_type_id is not null then 25 
            when organisati0_7_.unit_type_id is not null then 27 
            when organisati0_8_.mil_post_type_id is not null then 30 
            when organisati0_10_.exctv_mil_org_type_id is not null then 38 
            when organisati0_3_.mil_org_type_id is not null then 3 
            when organisati0_2_.govt_org_type_id is not null then 2 
            when organisati0_4_.prv_sctr_org_type_id is not null then 16 
            when organisati0_5_.civ_post_type_id is not null then 21 
            when organisati0_9_.group_org_type_id is not null then 35 
            when organisati0_.org_type_id is not null then 1 
        end as clazz_ 
    from
        jc3.org_type organisati0_ 
    inner join
 
    ...

    where
        case 
            when organisati0_6_.task_frmtn_type_id is not null then 25 
            when organisati0_7_.unit_type_id is not null then 27 
            when organisati0_8_.mil_post_type_id is not null then 30 
            when organisati0_10_.exctv_mil_org_type_id is not null then 38 
            when organisati0_3_.mil_org_type_id is not null then 3 
            when organisati0_2_.govt_org_type_id is not null then 2 
            when organisati0_4_.prv_sctr_org_type_id is not null then 16 
            when organisati0_5_.civ_post_type_id is not null then 21 
            when organisati0_9_.group_org_type_id is not null then 35 
            when organisati0_.org_type_id is not null then 1 
        end<>UnitType 
    order by
        organisati0_.org_type_id ASC limit ?

O seguinte erro é gerado:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query
	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1215) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1148) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255) ~[hibernate3.jar:3.6.7.Final]
	at br.mil.mar.casnav.persistence.GenericJPADAO.retrieveAll(GenericJPADAO.java:52) ~[GenericJPADAO.class:na]
	at br.mil.mar.casnav.persistence.AbsRepository.retrieveAll(AbsRepository.java:24) ~[AbsRepository.class:na]
	at br.mil.mar.casnav.siplom.spring.presentation.controller.ReadOnlyController.retrieveAll(ReadOnlyController.java:40) ~[ReadOnlyController.class:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_26]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) ~[org.springframework.web-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) ~[org.springframework.web.servlet-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) [servlet-api.jar:na]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) [servlet-api.jar:na]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:6.0.29]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.29]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [org.springframework.web-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [org.springframework.web-3.0.5.RELEASE.jar:3.0.5.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:6.0.29]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:6.0.29]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:6.0.29]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [catalina.jar:6.0.29]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [catalina.jar:6.0.29]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:6.0.29]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:6.0.29]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) [catalina.jar:6.0.29]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) [tomcat-coyote.jar:6.0.29]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) [tomcat-coyote.jar:6.0.29]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) [tomcat-coyote.jar:6.0.29]
	at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.doList(Loader.java:2536) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.list(Loader.java:2271) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246) ~[hibernate3.jar:3.6.7.Final]
	... 32 common frames omitted
Caused by: org.postgresql.util.PSQLException: ERROR: column "unittype" does not exist
  Posição: 4480
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102) ~[postgresql-9.0-801.jdbc4.jar:na]
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835) ~[postgresql-9.0-801.jdbc4.jar:na]
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) ~[postgresql-9.0-801.jdbc4.jar:na]
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500) ~[postgresql-9.0-801.jdbc4.jar:na]
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388) ~[postgresql-9.0-801.jdbc4.jar:na]
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273) ~[postgresql-9.0-801.jdbc4.jar:na]
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76) ~[c3p0-0.9.1.jar:0.9.1]
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1953) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.doQuery(Loader.java:802) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) ~[hibernate3.jar:3.6.7.Final]
	at org.hibernate.loader.Loader.doList(Loader.java:2533) ~[hibernate3.jar:3.6.7.Final]
	... 40 common frames omitted

Espero que me ajudem!

[]s

Criado 13 de outubro de 2011
Respostas 0
Participantes 1