hibernate3中使用hsql的sequence生成主键

本文介绍如何在HSQL数据库中使用sequence作为Hibernate的主键生成策略。通过创建一个名为dual_seq的表并插入初始值,解决了hibernate在获取sequence值时出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天,想尝试下使用hsql的sequence来作为hibernate的主键生成策略,主键部分XML代码是这样的:

<id
            name="id"
            column="person_id">
            <generator class="sequence">
            	<param name="sequence">seq</param>
            </generator>
</id>

 其中,seq是sequence的名称,如果直接这样用的话,hibernate会报异常,其中最重要的一句话是:select next value for seq from dual_seq。这句SQL是hibernate取得sequence值的sql。但是,在当前数据库中根本就没有这个表,于是,只有手工建表了:

create table dual_seq (
 id bigint
);

接着需要插入一条数据 insert into dual_seq(id) values(0); 

然后,用select next value for seq from dual_seq在hsql的database manager中查询,sequence的值查出来了。

最后,在运行刚才的插入的person的代码,ok,工作了。解决方法,贴出来共同进步。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值