Uso o hibernate + spring e minha aplicação conecta (sem problemas) com 3 banco de dados.
Oracle, Sybase 12.0 e SQLServer 2000
Estou tendo um problema que está me cheirando a [color=“darkred”]BUG[/color].
Meus métodos são todos paginados… setFirstResult e setMaxResults.
Mas, somente no SQLServer tenho problemas.
Qdo coloco setFirstResult(x); sendo x > 0, ele dá erro.
Por exemplo, se quero pegar do registro 10 ao 20.
Faço:
query = getHibernateTemplate().getNamedQuery(getSession(), "IntrInventario.findAll");
query.setFirstResult(10);
query.setMaxResults(20);
result = query.list();
no sql ele faz:
Mas somente qdo o query.setFirstResult(X) tem X >0 dá o erro:
net.sf.hibernate.exception.SQLGrammarException: Could not execute query
at net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:58)
at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
at br.com.polaris.intradesk.dao.Hibernate.IntrInventarioDAOImpl.findAll(IntrInventarioDAOImpl.java:54)
at br.com.polaris.intradesk.business.Impl.IntradeskImpl.IntrInventarioFindAll(IntradeskImpl.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy2.IntrInventarioFindAll(Unknown Source)
at br.com.polaris.intradesk.business.test.IntrInventarioTest.testFindAllPage(IntrInventarioTest.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)
[color=darkblue]Caused by: java.sql.SQLException: Invalid column name id_chave2_.[/color]
Caso eu coloque query.setFirstResult(0); Executa sem problemas
Nos bancos de dados Oracle e Sybase, eu faço identico e não ocorre nenhum erro.
[size=“18”]Será BUG ???[/size]