论坛首页 Java企业应用论坛

关于hibernate 生成器探讨

浏览 4239 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-11  
        对于hibernate生成器的选择,应该是使用hibernate的一个非常关键地方,在以前的一些小项目中,通常都是使用mysql数据库,所以,使用native,就可以啦,在使用过程中碰到的问题,好像也比较少,可是,我们现在要在oracle进行开发,其生成器标志,却不知道该如何选择了,我看用sequence的不少,但是,我不知道,是不是我们对每一个使用的表都需要,建一个sequence来绑定到这个表上呢,还是可以,多个表都使用同一个sequence,如果可以,会不会在开发过程中产生什么其它问题? 如果不用sequence用
assigned会不会比用sequence好呢? 不过我在网上,看到很多的关于使用assigned生成标志,然后使用
hibernate提供的save(),等的方法会出问题,这个问题是由什么产生的,该如何解决呢? 在oracle上是不是有是什么更好的方案可选择呢? 希望大家指点,谢谢!
   发表时间:2006-12-11  
默认的sequence是使用hibernate_sequence这个公用的sequence,当然你也可以在hbm文件里面指定不同的表用不同的sequence name.
0 请登录后投票
   发表时间:2006-12-11  
这是我用的hibernate_sequence
http://coolyzg.iteye.com/blog/24125
0 请登录后投票
   发表时间:2006-12-11  
Readonly 写道
默认的sequence是使用hibernate_sequence这个公用的sequence,当然你也可以在hbm文件里面指定不同的表用不同的sequence name.

   按Readonly所说,也就是我可以让我的所有表都使用hibernate默认的sequence(hibernate_sequence),这样我在开发过程中应该不会出现其他问题吧(就是有很多个表都在使用这一个系列的时候),此处的hibernate_sequence,需要我在oracle中建这么一个序列吗?
   
    他的生成标志可以是有业务意义的字段吗?如果可以这样做会有其他问题吗?
     
0 请登录后投票
   发表时间:2006-12-11  
wckjlu 写道

   按Readonly所说,也就是我可以让我的所有表都使用hibernate默认的sequence(hibernate_sequence),这样我在开发过程中应该不会出现其他问题吧(就是有很多个表都在使用这一个系列的时候),此处的hibernate_sequence,需要我在oracle中建这么一个序列吗?

如果设置了hibernate.hbm2ddl.auto属性,不需要手动建立序列,前提是你用的帐号必须有Create Sequence这种高级权限。
   
wckjlu 写道

    他的生成标志可以是有业务意义的字段吗?如果可以这样做会有其他问题吗?

偶不明白你在说什么...
0 请登录后投票
   发表时间:2006-12-11  
   
wckjlu 写道

    他的生成标志可以是有业务意义的字段吗?如果可以这样做会有其他问题吗?

偶不明白你在说什么...

   多谢指点!
    我学的很不牢靠,所以还有很过概念性的东西没有理解, 我想问的是,是不是在使用hibernate时,必须要给他一个生成器标志(id),而这个id通常都是没有意义的,如果,现在有需求,不用id(也就是不给这个表分配这么一个字段),而用username作为表的唯一主键,或者没有任何主键,这样是不是说用hibernate就会出问题呢?
   
0 请登录后投票
   发表时间:2006-12-11  
wckjlu 写道
   
不是在使用hibernate时,必须要给他一个生成器标志(id),而这个id通常都是没有意义的,如果,现在有需求,不用id(也就是不给这个表分配这么一个字段),而用username作为表的唯一主键,或者没有任何主键,这样是不是说用hibernate就会出问题呢?

用户需求不可能要求到数据库设计这种地步吧,在Hibernate里面推荐任何表都给个逻辑主键。你说的问题给username这个栏位加上unique限制就行了。
0 请登录后投票
   发表时间:2006-12-11  
   多谢Readonly的指点了,我知道基本该如何实现了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics