Quantcast
Channel: SCN : Unanswered Discussions - SAP MaxDB
Viewing all articles
Browse latest Browse all 543

MaxDB with Hibernate and autogenerated IDs

$
0
0

Hello,

 

i tried to migrate an existing Hibernate Application from PostgreSQL to MaxDB.

The first problem, i already solved, was that Hibernates default SAPDBDialect doesn't supports identity columns.

After searching a while, i found the following solution to provide MaxDBs serial support with hibernate: https://hibernate.atlassian.net/browse/HHH-7324

 

Now the schema update runs successfully and all tables were created, but when i try to persist the first entity, the following error occurs:

 

2013-09-02 09:42:35,040 WARN  [Thread-3] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: SQL Error: 0, SQLState: null

2013-09-02 09:42:35,040 ERROR [Thread-3] org.hibernate.engine.jdbc.spi.SqlExceptionHelper: An SQLException was provoked by the following failure: java.lang.UnsupportedOperationException: Method prepareStatement() is not yet implemented.

2013-09-02 09:42:35,050 ERROR [Thread-3] seetec.logistic.modules.server.hibernate.HibernateEntityManager: Exception in HibernateEntityManagerImpl.save!

org.hibernate.exception.GenericJDBCException: An SQLException was provoked by the following failure: java.lang.UnsupportedOperationException: Method prepareStatement() is not yet implemented.

  at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)

  at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)

  at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)

  at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:146)

  at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)

  at $Proxy26.prepareStatement(Unknown Source)

  at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$2.doPrepare(StatementPreparerImpl.java:105)

  at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166)

  at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:103)

  at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:55)

  at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2768)

  at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3279)

  at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:81)

  at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)

  at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:203)

  at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:183)

  at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:167)

  at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:320)

  at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287)

  at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193)

  at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:126)

  at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:208)

  at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:151)

  at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:78)

  at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:844)

  at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:819)

  at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:823)

...

Caused by: java.sql.SQLException: An SQLException was provoked by the following failure: java.lang.UnsupportedOperationException: Method prepareStatement() is not yet implemented.

  at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)

  at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)

  at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)

  at com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnection.java:369)

  at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:416)

  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.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138)

  ... 29 more

Caused by: java.lang.UnsupportedOperationException: Method prepareStatement() is not yet implemented.

  at com.sap.dbtech.jdbc.ConnectionSapDB.prepareStatement(ConnectionSapDB.java:1499)

  at com.sap.dbtech.jdbc.trace.Connection.prepareStatement(Connection.java:262)

  at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:399)

  ... 34 more

 

 

I'm  using Hibernate 4.1.5 SP1 with MaxDB 7.7.06 and it seems that the class "ConnectionSapDB" in the MaxDB JDBC-Dirver doesn't implement the method prepareStatement( sql, autoGeneratedKeys );

Manually inserting records with sql and a normal PreparedStatement works and the id is also generated automatically.

 

Has someone an idea how to solve this problem?

Thank you.


Viewing all articles
Browse latest Browse all 543

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>