既然是用hibernate,哪就简单多了将mysql中所有自增长字段都变成非自增长的
导出mysql的建表SQL,在oracle中建表,可能有所差异,但应该很容易修改
在oracle为原来的每个自增长字段创建sequence,也可以只创建一个,所有表共用这一个
修改hibernate的hbm文件,如果是注解方式配置的就修改注解,将sequence配置进去,只需要修改主键部分
搞定
创建sequence方面网上有很多资料,查一下就好。
一个注解例子:@Id
@SequenceGenerator(name="seq", sequenceName="MY_ID_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="seq")
public Long getId() {
return id;
}
创建sequence 的sql例子CREATE SEQUENCE MY_ID_SEQ MINVALUE 10000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;
可以所有表公用一个 sequence