我想在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取得的序列值赋值给实体的主键呢,让实体可以保存,希望各位高手帮忙看看。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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.   

    肯定有ID这个属性的哈。没有怎么让Hibernate去管理嘛!所以我就是想不通为什么无法插入!
      

  3.   

    1.贴出你的程序代码,特别是保存那一段。
    2.列出你的ORACLE驱动的版本
      

  4.   

    虽然指定为sequence,应该要把ID设为主键。
      

  5.   

    我发现问题不在于我写的主程序和配置,而是一个莫名其妙的问题。
    我把我的程序部署到别人机子上,先用自定义主键的方式,能够很好的插入,用上面主键的配置,也能够插入。但是,在我的机子上用自定义主键的方式都无法插入数据。不过,使用JDBC的方式倒可以插入数据。
     我把Myeclipse、JDK都重新装了一次,Hibernate中的包重新导入了一次,但仍然出现上述问题。这个问题太莫名其妙了,各位高手遇到过没?