Oracle到MySQL数据库迁移之--主键生成策略替换

本文详细介绍了如何在Oracle到MySQL数据库迁移中替换主键生成策略。主要涉及三个方面:注解和XML方式的Hibernate映射实体修改,以及存储过程的调整。通过在MySQL中模拟Oracle Sequence,实现了主键的自增功能。
摘要由CSDN通过智能技术生成

Oracle数据库到MySQL数据库迁移过程中的一大难题就是主键生成策略的替换. 如果之前的程序中使用Oracle的Sequence机制来实现主键的自增的话. MySQL中需要使用TableGenerator进行等价替换.

替换的时候, 主要有三个地方需要修改:

  • 以注解方式完成hibernate映射的实体;
  • 以xml方式完成hibernate映射的实体;
  • 数据库存储过程;

注解方式完成hibernate映射的实体的修改

使用Oracle Sequence

假如你之前的程序使用的是Sequence, 这里以一个名为SEQSequence为例, 那么你操作id字段的代码应该长的是下面这个样子:

// 注意: 如果不指定sequenceName的话, 默认为HIBERNATE_SEQUENCE, 这个序列也需要在Oracle中手动建立.
@SequenceGenerator(name = "generator", sequenceName = "SEQ")
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "generator")
public Long getId() {
    return id;
}

使用MySQL表模拟Oracle Sequence

首先你需要在MySQL中建立一个表sys_sequence, 表中有两个字段, 一个是seq_name, 代表Oracle序列的名称, 另一个是current_value, 代表该序列的当前值(注意: 需要将此初始值设定为Oracle数据库中对应序列的当前值.). 表的样子如下:

> select * from sys_sequence;
+--------------+------------+
| seq_name     | curr_value |
+--------------+------------+
| SEQ          |      2809  |
+--------------+------------+
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值