检查 tableInfo.getTableName() 有没有获取到正确的表名,用日志排查一下
直接手动输入表名:tableInfo.setTableName("your_table_name");
没明白你说的,原生的mybatis,支持sql语句写在xml中或注解中,写在注解中也可以,xml中不是必须的。
你这个问题,看着提示信息,应该不是程序的问题,而是因为数据库外键的问题,你删除所有数据,由于有的数据行有外键的约束,不允许你进行物理删除。
我把你的代码一顿改,好使了,可能是你配置的写法有问题。
我把你junit的依赖去掉了,然后把
spring-boot-starter-test这个依赖排除的那段也删掉了。
我的配置类是这么写的,没重写注入sqlSessionFactory类。
@Configuration @MapperScan("ciih.dsg.xhj.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); return paginationInterceptor; } }
数据源我也没重新注入,就是在yml中配置了。
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ddmanager?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull username: root password: root
不能同时制定两个sql注入器,所以报错,你有一个办法MySqlinjector不要继承DefaultSqlInjector直接继承LogicSqlInjector就可以了,你就配置这一个sql注入器,就既能使用逻辑删除又能加入自定义方法了。
可以用实体接多表字段,用自定义sql(如果自定义sql还想使用条件构造器的话,可以参考我入门篇的第四章第一节)。但是实体中的其他表的字段对应的属性,要加上@TableField(exist = false)。
这个是idea的验证,他认为你只在Mapper接口中有方法,没有在xml中写对应的sql语句,你可以在file->setting->Editor->Inspections->然后在搜索框中搜索Mybatis,在搜索的结果中,修改相应项的级别就可以了。
你好,我使用mysql5.7做实验,进行级联删除策略设置,例如我删除一个角色表中的数据,持有该角色的用户表的用户也跟着级联删除或者设置为set null,并且持有该角色的用户都是2条,两种不同策略下的执行delete角色操作,影响的row都显示为1,没出现你说的情况,请问你是使用什么数据库的什么版本,怎样设置,怎么操作的出现了上述情况?