菜鸟请教:用hibernate连接Oracle,有学生类和班级类。主键id为int类型,生成策略为native。
先映射为学生表和班级表,然后我添加学生和班级数据。
可是:数据是这样的
班级表id:
1
12
23
班级表id:
2
3
4
..
11
13
..
22
24
和我想要的班级id1,2,3..  学生id1,2,3..不一样啊。这ID该怎样生成呢?

解决方案 »

  1.   

    楼主貌似上当了,oracle是没有自增字段的,你要实现自增字段,需要在oracle里面用trigger+sequence来实现。为什么你这里跳号?可能你的这里两个字段名称都叫做ID,hib映射之后,只给你生成了一个sequence。你要去数据库,查找那个对应sequence和你着两张表上的trigger并修改之
      

  2.   

    这里的两表关联跳号,因为我没用过hib,只知道oracle的自增字段需要通过seq+trigger来实现,它这里的两表跳,但id还是连续的,是不是hib通过数据库来实现我不知道,说不定是hib内部做的。你自己看看oracle里面有没有对应的trigger。用toad或者plsqldev都可以看的。或者直接sql查当前用户的seq和trigger:
     select * from all_objects where owner='CARTOON' and (OBJECT_TYPE='SEQUENCE' or object_type='TRIGGER');owner改成你自己的用户名
      

  3.   

    数据库里面关系建好了 就是正确的
    increment