我想在Hibernate实现Orcale表主键自动增长。
我通过myeclipse自动生成了映射表和DAO文件。我修改了映射表中的主键设置为:
<id name="id" column="ID">
<generator class="sequence">
<param name="sequence">AIOX_TEST_CLASSIFY_ID</param>
</generator>
</id>
其中,AIOX_TEST_CLISSIFY_ID是我在Orcale中创建的Sequence的名字。
我创建的实体没有设置主键值,因为主键值应该通过Hibernate来获取。但我无法保存实体,不知道为什么?但通过显示出来的SQL语句
"Hibernate: select AIOX_TEST_CLASSIFY_ID.nextval from dual"
说明Hibernate已经取得了序列值?但如何使Hibernate取得的序列值赋值给实体的主键呢,让实体可以保存,希望各位高手帮忙看看。
我通过myeclipse自动生成了映射表和DAO文件。我修改了映射表中的主键设置为:
<id name="id" column="ID">
<generator class="sequence">
<param name="sequence">AIOX_TEST_CLASSIFY_ID</param>
</generator>
</id>
其中,AIOX_TEST_CLISSIFY_ID是我在Orcale中创建的Sequence的名字。
我创建的实体没有设置主键值,因为主键值应该通过Hibernate来获取。但我无法保存实体,不知道为什么?但通过显示出来的SQL语句
"Hibernate: select AIOX_TEST_CLASSIFY_ID.nextval from dual"
说明Hibernate已经取得了序列值?但如何使Hibernate取得的序列值赋值给实体的主键呢,让实体可以保存,希望各位高手帮忙看看。
楼主【wendy_wq】截止到2008-07-24 11:21:54的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:0
结贴的百分比:0.00 % 结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
2.列出你的ORACLE驱动的版本
我把我的程序部署到别人机子上,先用自定义主键的方式,能够很好的插入,用上面主键的配置,也能够插入。但是,在我的机子上用自定义主键的方式都无法插入数据。不过,使用JDBC的方式倒可以插入数据。
我把Myeclipse、JDK都重新装了一次,Hibernate中的包重新导入了一次,但仍然出现上述问题。这个问题太莫名其妙了,各位高手遇到过没?