@OverridepublicQuery<Flag>findAll(){returnnewQueryList<Flag>(this.getSession().createSQLQuery("select new br.com.mercadolivre.robot.domain.Flag (f.identity,f.name) from Flag f"));}
continua com erro:
ARNING:SQLError:1064,SQLState:4200018/02/201009:15:00org.hibernate.util.JDBCExceptionReporterlogExceptionsSEVERE:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'.com.mercadolivre.robot.domain.Flag (f.identity,f.name) from Flag f'atline1org.hibernate.exception.SQLGrammarException:couldnotexecutequeryatorg.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)atorg.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)atorg.hibernate.loader.Loader.doList(Loader.java:2216)atorg.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)atorg.hibernate.loader.Loader.list(Loader.java:2099)atorg.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)atorg.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)atorg.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)atorg.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)atbr.com.mercadolivre.robot.domain.repository.common.QueryList.list(QueryList.java:38)atbr.com.mercadolivre.robot.domain.repository.FlagRepository.<init>(FlagRepository.java:29)atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)atjava.lang.Class.newInstance0(Class.java:355)atjava.lang.Class.newInstance(Class.java:308)atbr.com.conrado.j4b.reflection.ReflectionUtils.newInstance(ReflectionUtils.java:96)atbr.com.conrado.j4b.reflection.ReflectionUtils.newInstance(ReflectionUtils.java:260)atbr.com.conrado.j4b.domain.AnnotatedDomainModel.addEntity(AnnotatedDomainModel.java:215)atbr.com.conrado.j4b.domain.AnnotatedDomainModel.addAllEntities(AnnotatedDomainModel.java:243)atbr.com.conrado.j4b.domain.AnnotatedDomainModel.model(AnnotatedDomainModel.java:72)atbr.com.mercadolivre.robot.config.Application.config(Application.java:38)atbr.com.mercadolivre.robot.config.Application.getSessionFactory(Application.java:28)atbr.com.mercadolivre.robot.servlet.RobotContextListener.contextInitialized(RobotContextListener.java:62)atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4429)atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)atorg.apache.catalina.core.StandardHost.start(StandardHost.java:722)atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)atorg.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)atorg.apache.catalina.core.StandardService.start(StandardService.java:516)atorg.apache.catalina.core.StandardServer.start(StandardServer.java:710)atorg.apache.catalina.startup.Catalina.start(Catalina.java:583)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)Causedby:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'.com.mercadolivre.robot.domain.Flag (f.identity,f.name) from Flag f'atline1atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)atjava.lang.reflect.Constructor.newInstance(Constructor.java:513)atcom.mysql.jdbc.Util.handleNewInstance(Util.java:403)atcom.mysql.jdbc.Util.getInstance(Util.java:378)atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031)atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3378)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3310)atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1853)atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1976)atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2503)atcom.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737)atcom.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1888)atorg.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)atorg.hibernate.loader.Loader.getResultSet(Loader.java:1787)atorg.hibernate.loader.Loader.doQuery(Loader.java:674)atorg.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)atorg.hibernate.loader.Loader.doList(Loader.java:2213)...37moreHibernate:selectnewbr.com.mercadolivre.robot.domain.Flag(f.identity,f.name)fromFlagf18/02/201009:15:02org.hibernate.util.JDBCExceptionReporterlogExceptionsWARNING:SQLError:1064,SQLState:4200018/02/201009:15:02org.hibernate.util.JDBCExceptionReporterlogExceptionsSEVERE:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'.com.mercadolivre.robot.domain.Flag (f.identity,f.name) from Flag f'atline1
Alguma ideia? Tem que ter alguma configuração no xml ou annotation em algum lugar??
Abraços
J
juniorsatanas
E
esqueleto
Ao inves de usar
tente
porque createSQLQuery é pra sql nativo pra HQL onde funciona o new tem que ser o metodo createQuery
I
infineight
Um simples:
Não resolve seu problema?
No hibernate.cfg.xml coloca a opção show_sql como true, para você ver o SQL que o Hibernate está gerando, pode te ajudar.
B
brucsantos
Valeu esqueleto!
Funcionou!
Era só trocar o metodo mesmo deixei assim:
@OverridepublicQuery<Flag>findAll(){returnnewQueryList<Flag>(this.getSession().createQuery("select new Flag(identity,name) from Flag "));}
Obrigado pela ajuda de todos!
Abraços
B
brucsantos
brucsantos:
Bom dia!
Estou lendo a documentação do hibernate usando hql e estou com um problema:
Encontreio seguinte na documentação:
Implementei o meu construtor com os parametros que quero que minha pesquisa retorne porem tenho o seguinte erro: