当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

非版本问题,想请教方案

重现步骤(如果有就写完整)

@TableId(value = "id", type = IdType.AUTO)
private Integer id;

用 IdType.AUTO,在save() 之后,id会自动填充进对象; 如果用IdType.INPUT的话,我未设置id,默认是数据库的自增策略,save() 之后,id是不会填充进对象的。

所以我的问题是:如果我用INPUT策略的话,怎么才能获取save()之后的id

报错信息

Comment From: tirster

在你执行save()方法之前,给对象填充了自定义的id,然后执行save()方法成功后,这个被添加的对象就已经有id,你直接尝试getId就能拿到你添加对象的id值

Comment From: yanbospark

嗯,你说的这个我考虑了,也找了mybatisplus的IService和BaseMapper没有直接generateId()的方法; (如果有简介的方式获取,麻烦告知一下,谢谢)

第二个,我还是想通过在源码扩展性这一块看能不能解决这个问题。

(如果源码无法解决这个问题的话,那我会考虑重写IService的save(), saveOrUpdate() 这些save方法,自己生成id填充进去,跟你讲的一样。)

Comment From: qmdx

IdWorker.getId() 手动获得雪花ID

Comment From: yanbospark

_< 我们这边必须要用数据库的自增id(我们的业务场景可能比较复杂,需要用数据库的自增id)

我这边目前的做法是: 用两个entity类,一个id使用IdType.AUTO,另一个id使用IdType.INPUT(两个Entity类的话,对应两套Mapper,Service有点麻烦了)

所以还是想从源码层解决,但是发现没啥扩展点。能不能通过重写处理Input类型的那个类,实现这个呢?(我下载下来源码,没找到Input类型的处理类是哪个)