小编Kri*_*hna的帖子

Hibernate:使用增量和Oracle Schema的ID生成器

我正在使用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"属性.

如何解决这个问题?

oracle hibernate

3
推荐指数
1
解决办法
9235
查看次数

标签 统计

hibernate ×1

oracle ×1