[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-3029) use_sql_commants fails on Derby

Strong Liu (JIRA) noreply at atlassian.com
Wed Feb 9 06:41:09 EST 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-3029?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Strong Liu updated HHH-3029:
----------------------------

    Comment: was deleted

(was: similar situation here w. derby 10.4.2.0 and hibernate 3.3.1.GA
however, for me the result is different: Derby then fails, because it "assumes" that I want to do an "update", when I do a query - I think they parse and fail, because they dont find "select" at the beginning of the string




org.hibernate.exception.GenericJDBCException: could not load an entity: [com.cg.g3his.cor.bas.testing.sample.SomeEntity#1]
	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1895)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3072)
	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223)
	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:842)
	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:835)
	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
	at org.springframework.orm.jpa.JpaTemplate$1.doInJpa(JpaTemplate.java:233)
	at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:184)
	at org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:231)
	at com.cg.g3his.cor.bas.testing.sample.SomeEntityDAO.findById(SomeEntityDAO.java:33)
	at com.cg.g3his.cor.bas.testing.spring.SomeEntityDAOTest2.testCreateStep2(SomeEntityDAOTest2.java:41)
	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:597)
	at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
	at org.testng.internal.MethodHelper$1.runTestMethod(MethodHelper.java:698)
	at org.springframework.test.context.testng.AbstractTestNGSpringContextTests.run(AbstractTestNGSpringContextTests.java:140)
	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:597)
	at org.testng.internal.MethodHelper.invokeHookable(MethodHelper.java:706)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:468)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:617)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:885)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
	at org.testng.TestRunner.runWorkers(TestRunner.java:712)
	at org.testng.TestRunner.privateRun(TestRunner.java:582)
	at org.testng.TestRunner.run(TestRunner.java:477)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
	at org.testng.SuiteRunner.run(SuiteRunner.java:198)
	at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:823)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:790)
	at org.testng.TestNG.run(TestNG.java:708)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
Caused by: java.sql.SQLException: Die Methode executeQuery kann nicht für ein Update verwendet werden.
	at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source)
	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
	at org.apache.derby.client.am.PreparedStatement.executeQuery(Unknown Source)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
	at org.hibernate.loader.Loader.doQuery(Loader.java:697)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1881)
	... 46 more
Caused by: org.apache.derby.client.am.SqlException: Die Methode executeQuery kann nicht für ein Update verwendet werden.
	at org.apache.derby.client.am.Statement.checkForAppropriateSqlMode(Unknown Source)
	at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown Source)
	at org.apache.derby.client.am.PreparedStatement.executeQueryX(Unknown Source)
	... 53 more)

> use_sql_commants fails on Derby
> -------------------------------
>
>                 Key: HHH-3029
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3029
>             Project: Hibernate Core
>          Issue Type: Bug
>         Environment: WinXP, SP2  Java 1.5..0_12, Spring 2.0.7, Hibernate 3.2.5ga, Derby 10.3.2.1
>            Reporter: Oleksandr Alesinskyy
>            Assignee: Strong Liu
>
> Activation is use_sql_comments cause SQL exception
>     /* insert de.ntec.lms.impl.P1Bean
>         */ insert 
>         into
>             P1
>             (VERSION, CELL_POS, CODE, CELL_ID, PLACE_ID) 
>         values
>             (?, ?, ?, ?, ?)
> 2007-12-25 11:46:29,406  WARN org.hibernate.util.JDBCExceptionReporter
>     SQL Error: -1, SQLState: 42X01
> 2007-12-25 11:46:29,406 ERROR org.hibernate.util.JDBCExceptionReporter
>     Syntaxfehler: Encountered "/" at line 1, column 1.
> 2007-12-25 11:46:29,487 ERROR org.hibernate.event.def.AbstractFlushingEventListener
>     Could not synchronize database state with session
> org.hibernate.exception.SQLGrammarException: could not insert: [de.ntec.lms.impl.P1Bean]
> 	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
> 	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
> 	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2078)
> 	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427)
> 	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
> 	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
> 	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
> 	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
> 	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
> 	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
> 	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
> 	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
> 	at de.ntec.lms.impl.PerformanceTest.doMain(PerformanceTest.java:84)
> 	at de.ntec.lms.impl.PerformanceTest.main(PerformanceTest.java:46)
> Caused by: java.sql.SQLException: Syntaxfehler: Encountered "/" at line 1, column 1.
> 	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
> 	at org.apache.derby.client.am.Connection.prepareStatement(Unknown Source)
> 	at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:185)
> 	at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:278)
> 	at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:442)
> 	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
> 	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
> 	at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
> 	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2048)
> 	... 12 more
> Caused by: org.apache.derby.client.am.SqlException: Syntaxfehler: Encountered "/" at line 1, column 1.
> 	at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source)
> 	at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source)
> 	at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source)
> 	at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source)
> 	at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source)
> 	at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source)
> 	at org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown Source)
> 	at org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source)
> 	at org.apache.derby.client.am.Connection.prepareStatementX(Unknown Source)
> 	... 20 more
> Hibernate settings (via Spring)
>         <property name="manglableMappingResources">
>             <list>
>                 <value>de/ntec/lms/impl/P1Bean.hbm.xml</value>
>             </list>
>         </property>
>         <property name="hibernateProperties">
>             <props>
>                 <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>
>                 <prop key="hibernate.show_sql">true</prop>
>                 <prop key="hibernate.format_sql">true</prop>
>                 <prop key="hibernate.use_sql_comments">true</prop>
>                 <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
>             </props>
>         </property>
> When use_sql_comments is false all works smoothly.
> Failing code
> 		P1Bean p1= new P1Bean();
> 		p1.setCell(1);
> 		p1.setCellPosition(2);
> 		p1.setCode("A");
> 		s.save(p1);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the hibernate-issues mailing list