我在为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
答案 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.