1.方法上不可以有事务注解 2.使用 LambdaQueryWrapper 查询会失效,可以自己写sql,或者使用Wrappers去查询,例如 List<BaseFile> baseFiles = this.list(Wrappers.<BaseFile>lambdaQuery().select(BaseFile::getId).notIn(BaseFile::getId, fileIds).isNotNull(BaseFile::getFileName));这种方式数据源是可以生效的。
其中insertBatchSomeColumn是默认方法名,可以在第1步的配置中指定InsertBatchSomeColumn(String name, Predicate<TableFieldInfo> predicate)方法名。 使用内置方法有一个缺点,不能根据插入实体类是否非空来决定插入的字段列表,为空的会直接插入null值,这就导致了我们在数据库设置的默认是值失效。 二、使用第三方实现 1...
默认值:NOT_NULL 字段验证策略之 update 说明: 在update 的时候的字段验证策略 目前没有默认值,等 {@link #fieldStrategy} 完全去除掉,会给个默认值 NOT_NULL 没配则按 {@link #fieldStrategy} 为准 #selectStrategy(since 3.1.2) 类型:com.baomidou.mybatisplus.annotation.FieldStrategy 默认值:NOT_NULL 字...
第6行的代码,根据Environment中的DataSource(其实际类型是PooledDataSource)、TransactionIsolationLevel、autoCommit三个参数从TransactionFactory中获取一个事物,注意第三个参数autoCommit,它是openSession()方法中传过来的,其值为false,即MyBatis默认事物是不自动提交的。 第7行的代码,实现跟一下: 1 public Executor new...
任何使用wrapper的时候,自动填充都是失效的,必须带实体类,可以new一个 1. 更新字段为null 默认情况: 全局配置默认值为not_null,传递的参数中某个字段为null,则默认不会对为null的字段更新成null 1.@TableField(strategy = FieldStrategy.IGNORED)(不推荐) ...
然而,如果不手写sql,使用mybatis plus自带的LambdaQuery查询,则description字段就有值了。 ClientRoleadmin=iClientRoleMapper.selectOne(newLambdaQueryWrapper<ClientRole>().eq(ClientRole::getName,"admin") ); 真是活见鬼,两种方法理论上结果应该是一模一样的,最终却发现@TableField字段在手写sql这种方式下失效了。
定位到了问题,那就也便于解决了,问题原因是生成插入sql时,对null值的处理策略造成的,查阅mybatis-plus官方文档发现,有一个配置项可以解决这个问题: insertStrategy 类型:com.baomidou.mybatisplus.annotation.FieldStrategy 默认值:NOT_NULL 字段验证策略之 insert,在 insert 的时候的字段验证策略 ...
spring:datasource:dynamic:primary:master#设置默认的数据源或者数据源组,默认值即为masterstrict:false#严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:master:url:jdbc:mysql://xx.xx.xx.xx:3306/dynamicusername:rootpassword:123456driver-class-name:com.mysql.jdbc.Dri...
spring: datasource: dynamic: primary: master #设置默认的数据源或者数据源组,默认值即为master datasource: master: username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://10.20.204.130:3306/user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezon...