加强医院微信和网站建设如何找到网站是谁做的
news/
2025/9/27 13:39:12/
文章来源:
加强医院微信和网站建设,如何找到网站是谁做的,山东网上注册公司流程,甘肃seo技术一次数据库主键莫名其妙的变得非常大排查记录
事情的现象 数据库中表结构是设置了主键自增#xff0c;但是发现数据库中的id变成了这种1705604075022516225#xff0c;然后怀疑是自增主键没有生效#xff0c;反复尝试之后发现不是。因为手动插入数据的时候#xff0c;主键…一次数据库主键莫名其妙的变得非常大排查记录
事情的现象 数据库中表结构是设置了主键自增但是发现数据库中的id变成了这种1705604075022516225然后怀疑是自增主键没有生效反复尝试之后发现不是。因为手动插入数据的时候主键是会自增的。于是把思路放在了排查mybatis-plus之前一直用的mybatis实体类中并没有显示的表明主键的生成方式因为插入的时候主键会自动生成以为mp也会这样。 这里说一下具体排查可以直接在具体实体类的set方法中进行断点调试然后在idea的debugger窗口中看一下调用步骤然后可以直接回退到指定步骤调试利器。 最后找到了这个地方
/*** 自定义 ParameterHandler 重装构造函数填充插入方法主键 ID** author nieqiuqiu 2020/6/5* since 3.4.0*/
public class MybatisParameterHandler implements ParameterHandler {}
protected void populateKeys(TableInfo tableInfo, MetaObject metaObject, Object entity) {final IdType idType tableInfo.getIdType();final String keyProperty tableInfo.getKeyProperty();if (StringUtils.isNotBlank(keyProperty) null ! idType idType.getKey() 3) {//可以看到自动生成主键final IdentifierGenerator identifierGenerator GlobalConfigUtils.getGlobalConfig(this.configuration).getIdentifierGenerator();Object idValue metaObject.getValue(keyProperty);if (identifierGenerator.assignId(idValue)) {if (idType.getKey() IdType.ASSIGN_ID.getKey()) {Class? keyType tableInfo.getKeyType();if (Number.class.isAssignableFrom(keyType)) {Number id identifierGenerator.nextId(entity);if (keyType id.getClass()) {metaObject.setValue(keyProperty, id);} else if (Integer.class keyType) {metaObject.setValue(keyProperty, id.intValue());} else if (Long.class keyType) {metaObject.setValue(keyProperty, id.longValue());} else if (BigDecimal.class.isAssignableFrom(keyType)) {metaObject.setValue(keyProperty, new BigDecimal(id.longValue()));} else if (BigInteger.class.isAssignableFrom(keyType)) {metaObject.setValue(keyProperty, new BigInteger(id.toString()));} else {throw new MybatisPlusException(Key type keyType not supported);}} else if (String.class.isAssignableFrom(keyType)) {metaObject.setValue(keyProperty, identifierGenerator.nextId(entity).toString());} else {metaObject.setValue(keyProperty, identifierGenerator.nextId(entity));}} else if (idType.getKey() IdType.ASSIGN_UUID.getKey()) {metaObject.setValue(keyProperty, identifierGenerator.nextUUID(entity));}}}}package com.baomidou.mybatisplus.core.config;public static class DbConfig {/*** 主键类型*/private IdType idType IdType.ASSIGN_ID;}默认是这个类型这个类型mybatis-plus会自动生成主键。
package com.baomidou.mybatisplus.annotation;public enum IdType {AUTO(0),NONE(1),INPUT(2),ASSIGN_ID(3),ASSIGN_UUID(4);
}TableId(type IdType.AUTO) 加上就好了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919526.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!