Hibernate operation: Could not execute JDBC batch update;
1:STRUTS+HIBERNATE+SPRING框架 原来项目的数据库是SQL2000,原来所有表是HIBERNATE生成的主键是用UUIX,现在改成ORACLE后随便运行一个保存测试用例的时候,会出现主键为空的异常.
也就是UUIX在ORACLE不生成,也就不能插入.如果重新在ORACLE的一张表上生成一个表 做保存的话 是没问题的.不可能在把原来的整个项目的表都去生成一遍,请问怎么改?
谢谢..异常如下:
org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: Could not execute JDBC batch update; bad SQL grammar [insert into cms_cnparts.dbo.T_LINK (linkName, typeID, linkUrl, picture, linkIntro, createTime, email, tel, isPass, orderID, memberID, linkID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is java.sql.BatchUpdateException: ORA-00926: missing VALUES keyword
Caused by: java.sql.BatchUpdateException: ORA-00926: missing VALUES keyword
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:3907)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
HIBERNATE配置如下:
<session-factory>
<property name="dialect">
org.hibernate.dialect.OracleDialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@10.241.96.123:1521:ORA9I
</property>
<property name="connection.username">elplat</property>
<property name="connection.password">elplat_168</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">
cms_cnparts
</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
/************************************
随便一张表的映射如下
<hibernate-mapping>
<class name="com.elone.pm.message.pojo.TLink" table="T_LINK" schema="dbo" catalog="cms_cnparts">
<id name="linkId" type="java.lang.String">
<column name="linkID" length="32" />
<generator class="uuid.hex" />
</id>
<property name="linkName" type="java.lang.String">
<column name="linkName" length="50" />
</property>
<many-to-one name="linktype" lazy="false" class="com.elone.pm.message.pojo.TLinktype" fetch="select">
<column name="typeID" length="32" />
</many-to-one>
<property name="linkUrl" type="java.lang.String">
<column name="linkUrl" length="200" />
</property>
<property name="picture" type="java.lang.String">
<column name="picture" length="2000" />
</property>
<property name="linkIntro" type="java.lang.String">
<column name="linkIntro" length="3000" />
</property>
<property name="createTime" type="java.lang.String">
<column name="createTime" length="80" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="50" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="50" />
</property>
<property name="isPass" type="java.lang.String">
<column name="isPass" length="8" />
</property>
<property name="orderId" type="java.lang.String">
<column name="orderID" length="8" />
</property>
<many-to-one name="member" lazy="false" class="com.elone.pm.message.pojo.TMember" fetch="select">
<column name="memberID" length="32" />
</many-to-one>
</class>
</hibernate-mapping>