尝试直接用 useGeneratedKeys,但公司的框架模版使用的 mybatis 依赖是 3.2.8 版本的,看了官网需要 3.3.1 才支持。如果在不修改 mybatis 依赖版本的情况下,除了插入后再查一次,如何能获取批量插入记录的主键呢?
尝试直接用 useGeneratedKeys,但公司的框架模版使用的 mybatis 依赖是 3.2.8 版本的,看了官网需要 3.3.1 才支持。如果在不修改 mybatis 依赖版本的情况下,除了插入后再查一次,如何能获取批量插入记录的主键呢?
|
miceanJan 10, 2021
1
如果用 batch 肯定是没有的
用单次提交试试吧 或者开事务,批量插入后查一次 |
|
340244120wJan 10, 2021 via iPhone
2
自己生成主键
|
|
3
@340244120w 自己生成就不能使用自增主键了啊,多节点还要处理唯一性啊
|
|
w292614191Jan 10, 2021
5
selectkey
|
|
6
@w292614191 这个也不支持批量的
|
|
xiang0818Jan 10, 2021
7
用分布式 Id 吧,事先生成主键会好点
|
|
Still4Jan 11, 2021
8
升级版本,实在不想升级就参考支持的版本自己实现一遍,所以还是升级比较方便
|
|
shanghai1943Jan 11, 2021
9
增加一个 uuid 字段,批量插入之后再根据 uuid 批量查询对应的自增 id
|
|
slyang5Jan 11, 2021
10
自己生成主键 ID 吧 set 一下 再批量插入
|
|
RedBeanIceJan 11, 2021
11
|
|
shanghai1943Jan 11, 2021
12
额没看清题目。尴尬。
|
|
hiveexJan 11, 2021
13
他的 batch 源码里也是 for 循环去插入 你直接用 for 记下 id
|
|
wg20080215Jan 11, 2021
14
@RedBeanIce 没毛病呀。 #9 的方案可以的,把 snowflake 生成的 UUID 字段作为非主键字段,插入数据库后拿着 UUID 去查 自增 ID 也可以的。不管你几台服务器 snowflake 都无所谓嘛
|
|
340244120wJan 11, 2021
15
|