我正在使用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>
Run Code Online (Sandbox Code Playgroud)
我在cfg.xml中设置了如下默认模式,因为我需要在我的应用程序中使用OTHER_SCHEMA中的表.
<property name="hibernate.default_schema">OTHER_SCHEMA</property>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,它似乎是一个Hibernate Bug,因为使用TestTable对象的读取工作正常并正确使用'TEST'模式,但'<generator class="increment"></generator>'不使用'TEST'模式但使用默认的'OTHER_SCHEMA'来获取最大值ID.为max ID生成的查询读取如下:
Hibernate: select max(TEST_ID) from OTHER_SCHEMA.TEST_TABLE
Run Code Online (Sandbox Code Playgroud)
我无法为生成器指定架构,并且它没有使用我期望它使用的类的schema ="TEST"属性.
如何解决这个问题?