使用hbm2ddl在HQLnate中生成HSQLDB序列时出错

时间:2012-05-04 09:01:11

标签: java hibernate hsqldb

我在为HSQLDB中的id字段生成序列时遇到错误。映射文件的配置如下:

<hibernate-mapping>
    <class name="ddol.rtdb.dto.Configuration" table="RTDB_CONFIGURATION">
        <id name="id" type="int">
            <column name="CONF_ID" />
            <generator class="sequence">
                <param name="sequence">CONF_ID_SEQ</param>
            </generator>
        </id>
        <property generated="never" lazy="false" name="configurationDate"
            type="java.util.Date">
            <column name="CONF_DATE" />
        </property>

当我使用与oracle相同的映射时,它可以工作,但在与HSQLDB一起使用时不会生成序列进行测试。我还应该在映射中添加其他内容吗?

当我尝试在表格中插入内容时,我得到的错误是:

ERROR org.hibernate.util.JDBCExceptionReporter - user has no privileges or object not found: CONF_ID_SEQ

HSQLDB版本是2.2.8,Hibernate版本是3.6.10

1 个答案:

答案 0 :(得分:0)

创建序列(CONF_ID_SEQ - 如果它不存在)并确保您拥有"grant"权限。
或者,您可以为序列创建"synonym",并为所有用户或您想要的特定用户授予"grant"权限。然后它应该工作。

    E.g  
    Consider, You are creating Sequence as "dbauser". Now, some other "user"(who don't have access) trying to use it,  
then u will get "user has no privileges" error.  
    In that case you can use above strategy.