我正在使用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