【发布时间】:2010-12-06 16:19:09
【问题描述】:
我正在使用 Hiberbnate 3.1.3。我有一个如下映射,当我尝试将记录插入 TEST_TABLE 时,我得到一个异常:'线程“main”中的异常 org.hibernate.exception.SQLGrammarException:无法获取增量生成器的初始值'
<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>
在上述情况下,它似乎是一个 Hibernate 错误,因为使用 TestTable 对象进行读取工作正常并正确使用“TEST”架构,但 '<generator class="increment"></generator>' 不使用“TEST”架构,而是使用默认的 ' OTHER_SCHEMA' 用于获取最大 ID。为最大 ID 生成的查询如下:
Hibernate: select max(TEST_ID) from OTHER_SCHEMA.TEST_TABLE
我无法为生成器指定架构,并且它没有使用我希望它使用的类的 schema="TEST" 属性。
如何解决这个问题?
【问题讨论】: