我正在使用Hiberbnate 3.1.3。我有一個映射如下,當我嘗試插入記錄到TEST_TABLE,我得到一個異常:'線程中的異常'主要「org.hibernate.exception.SQLGrammarException:無法獲取增量生成器的初始值'休眠:使用增量和Oracle架構的ID生成器
<class name="com.test.app.to.TestTable" table="TEST_TABLE" schema="TEST">
<id name="testId" type="long">
<column name="TEST_ID" precision="12" scale="0" />
<generator class="increment"></generator>
</id>
</class>
我在cfg.xml中設置瞭如下的默認模式,因爲我需要使用OTHER_SCHEMA中的表以及我的應用程序。
<property name="hibernate.default_schema">OTHER_SCHEMA</property>
在上述情況下,似乎使用TestTable的對象工作正常,並正確地使用「測試」模式是一個Hibernate錯誤的讀,但'<generator class="increment"></generator>'
不使用「測試」模式,而是使用默認'OTHER_SCHEMA'獲取最大ID。爲最大ID生成的查詢全文如下:
Hibernate: select max(TEST_ID) from OTHER_SCHEMA.TEST_TABLE
我不能指定用於發生器的架構和它不使用模式的類=「TEST」的屬性,我希望它使用。
如何解決此問題?
這對我有很大的幫助。謝謝。 – ozeray 2015-03-17 08:12:44