useGeneratedKeys失效的情况之一 —— mybatis中表主键为自定义而非自增时,insert(Entity en)后 en.getId() == null

useGeneratedKeys失效的情况之一 —— mybatis中表主键为自定义而非自增时,insert(Entity en)后 en.getId() == null

【现象】:mybatis中表主键为自定义而非自增时,insert(Entity en)后 en.getId() == null

【原因】:当主键用户自定义提供,不再由数据库自动生成时。在数据入库前,用户已知主键,那么mybatis 不插手和妨碍。如果在insert(Entity en) 前,用户自己已填充了id,那么能取得;若在insert(Entity en) 前未设值,而是依靠执行时,通过其他字段赋值,那就取不到id,也就是说 insert(Entity en) 执行后,不会自动将id放入 Entity 中,要想取得id值,直接取设值的字段值就好了。

原文地址:https://www.cnblogs.com/bridgestone29-08/p/14349205.html