hibernate中提交数据时,如果ID中有值则用ID中的值做为主键,若没有则取sequence,哪位好心人指点指点有没有这样的写法。hibernate

解决方案 »

  1.   

    这两种结合的还真没做过。如果一个ID有值,那还得去数据库中查下有没有相同ID存在,没有的话才能插入新值。
      

  2.   

    楼主说的我还真没弄过。一方面你的ID用了序列自动生成,另一方面你又给ID指定了一个值然后就不用序列的值。是这个意思吗?
    如果是的话你不觉的会出错吗? 假如你说的可以实现,现在序列的值为5,你给ID指定了值为10,下次序列的值为10的话能插进去吗?
      

  3.   

    意思是这个意思,但是我如果给ID指定的值那也是先获取序列的值,然后给ID赋值的。
      

  4.   

    意思是这个意思,但是我如果给ID指定的值那也是先获取序列的值,然后给ID赋值的。 
      

  5.   

    首先有方法可以得到序列值,比如getsequence(),如果你调用过这个方法,就可以把当前得到的值作为id插入啊。如果想随便插入一个值当做id,请慎重。
      

  6.   


     谢谢提醒,这个已经考虑过了,我上面所说的给ID赋值其实也是先从数据库取sequence后赋值,只是鉴于项目中太多地方对该表进行操作,因此才问有没有这样的做法。
      

  7.   

    hibernate没有提供1个ID、2个生成策略这种会导致错误的生成方式,不过楼主的问题貌似只要调用saveOrUpdate就能解决