|
Hi I am tying to use hibernate with iSeries and i am not able to insert records to the file but I am able to query . I am trying to use the 'sequence' in generator element while mapping. here is my hibernate.cfg.xml <session-factory> <property name="connection.username">rizwane</property> <property name="connection.url">jdbc:as400://xxx.xxx.xx.x/rizwane;translate binary=true</property> <property name="dialect">org.hibernate.dialect.DB2400Dialect</property> <property name="myeclipse.connection.profile">AS400</property> <property name="connection.password">x</property> <property name="connection.driver_class"> com.ibm.as400.access.AS400JDBCDriver</property> <property name="transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory</property> <property name="current_session_context_class">thread</property> <!-- this will show us all sql statements --> <property name="hibernate.show_sql">true</property> <!-- this will create the database tables for us --> <!-- <property name="hibernate.hbm2ddl.auto">create</property>--> <mapping resource="Honey.hbm.xml" /> here is my mapping <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="rizwan.in.example"> <class name="Honey" table="thoney" > <id name="id" type="long" column="id"> <generator class="sequence"> <param name="sequence">honey_id_seq</param> </generator> </id> <property name="name" type="string" column="name" ></property> <property name="taste" type="string" column="taste" ></property> </class> </hibernate-mapping> and when i run the example here is the error i am getting for insert (could not get next sequence value ) 15:56:42,501 DEBUG SQL:346 - values nextval for honey_id_seq Hibernate: values nextval for honey_id_seq 15:56:42,736 WARN JDBCExceptionReporter:71 - SQL Error: -29, SQLState: 42601 15:56:42,736 ERROR JDBCExceptionReporter:72 - [SQL0029] INTO clause missing from embedded statement. org.hibernate.exception.SQLGrammarException: could not get next sequence value at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) at org.hibernate.exception.JDBCExceptionHelper.convert( JDBCExceptionHelper.java:43) at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:96) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId( AbstractSaveEventListener.java:91) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId (DefaultSaveOrUpdateEventListener.java:186) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId (DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient( DefaultSaveOrUpdateEventListener.java:175) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate( DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate( DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:51 at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514) at de.laliluna.example.TestExample.createHoney(TestExample.java:83) at de.laliluna.example.TestExample.main(TestExample.java:33) Caused by: java.sql.SQLException: [SQL0029] INTO clause missing from embedded statement. at com.ibm.as400.access.JDError.throwSQLException(JDError.java:650) at com.ibm.as400.access.JDError.throwSQLException(JDError.java:621) at com.ibm.as400.access.AS400JDBCStatement.commonPrepare( AS400JDBCStatement.java:1506) at com.ibm.as400.access.AS400JDBCPreparedStatement.<init>( AS400JDBCPreparedStatement.java:185) at com.ibm.as400.access.AS400JDBCConnection.prepareStatement( AS400JDBCConnection.java:1903) at com.ibm.as400.access.AS400JDBCConnection.prepareStatement( AS400JDBCConnection.java:1726) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement( AbstractBatcher.java:442) at org.hibernate.jdbc.AbstractBatcher.prepareSelectStatement( AbstractBatcher.java:99) at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:73) ... 11 more 15:56:42,752 DEBUG TestExample:36 - Honey: null Name: forest honey Taste: very sweet 15:56:43,081 DEBUG SQL:346 - select honey0_.id as id0_, honey0_.name as name0_, honey0_.taste as taste0_ from thoney honey0_ Hibernate: select honey0_.id as id0_, honey0_.name as name0_, honey0_.taste as taste0_ from thoney honey0_ 15:56:43,333 DEBUG TestExample:53 - Honey: 1 Name: FSDGFDGD Taste: SDFSDFSD 15:56:43,333 DEBUG TestExample:53 - Honey: 2 Name: DFGFD The same thing works well on MySQL database. For iSeries I am able to list the data , the problem is in inserting the record, i tried 'native' for generator element and all options. I even deleted the auto created file and created the file manually in the iSeries and still the same error: Any help will be appreciated I was going through David Morris example alsoe ( http://www.itjungle.com/fhg/fhg030304-story01.html) but with no luck. May be he could help here :-) Thanks Rizwan http://www.rizwan.in
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.