当前位置: 首页 > news >正文

Hibernate与MybatisPlus的混用问题(Invalid bound statement (not found))

当项目里已经有了Hibernate后:

spring:jpa:hibernate:ddl-auto: updateshow-sql: trueproperties:hibernate:format_sql: true

再配置yml文件就会失效:

mybatis-plus:mapper-locations: classpath:mapper/*.xml# 全局策略global-config:db-config:# 自动生成id 策略为Long类型雪花算法id-type: ASSIGN_IDconfiguration:use-deprecated-executor: falsemap-underscore-to-camel-case: truecache-enabled: falselog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

于是必须重新在配置文件的Bean中定义MybatisPlus的配置:

package com.xxx.xxx;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;/*** MybatisPlus配置*/
@Slf4j
@Configuration
/**因为与hibernate混用,被hibernate覆盖了,需要重新定义**/
@MapperScan(basePackages = "com.xxx.mapper", sqlSessionFactoryRef = "mybatisSqlSessionFactory")
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}@Beanpublic SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}/*** 因为与hibernate混用,被hibernate覆盖了,配置需要重新定义,放在yml中配置会被覆盖* @param dataSource* @return* @throws Exception*/@Beanpublic SqlSessionFactory mybatisSqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();bean.setDataSource(dataSource);// 加载 mapper.xml 文件Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml");bean.setMapperLocations(resources);// 设置别名包bean.setTypeAliasesPackage("com.qxh.mapper");MybatisConfiguration configuration = new MybatisConfiguration();configuration.setMapUnderscoreToCamelCase(true);configuration.setLogImpl(org.apache.ibatis.logging.stdout.StdOutImpl.class);configuration.setUseDeprecatedExecutor(false);configuration.setCacheEnabled(false);bean.setConfiguration(configuration);// 设置全局配置GlobalConfig globalConfig = new GlobalConfig();GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();dbConfig.setIdType(IdType.ASSIGN_ID);bean.setGlobalConfig(globalConfig);return bean.getObject();}
}

之前用的yml去配置,一直报错:Invalid bound statement (not found),花了我好几个小时,原来是被覆盖了。

相关文章:

  • C++11新特性_Lambda 表达式
  • 【C++】类和对象【中下】
  • kmodel文件分析
  • 类成员函数编译链接的过程
  • 机器视觉开发-摄像头扫描二维码
  • 浅谈高校教育改革
  • 学习笔记:Qlib 量化投资平台框架 — MAIN COMPONENTS Part Ⅳ
  • 新能源行业供应链规划及集成计划报告(95页PPT)(文末有下载方式)
  • 深入理解C语言中的整形提升与算术转换
  • 【业务领域】PCIE协议理解
  • LintCode第652题-递归版
  • 1996-2022年全国31省ZF干预度数据/财政干预度数据(含原始数据+计算过程+结果)
  • 算法笔记.试除法判断质数
  • 网络编程——TCP和UDP详细讲解
  • Adam(Adaptive Moment Estimation)
  • Python数据分析课程实验-2
  • 前端八股 5
  • Gen6D代码框架分析
  • Linux——线程(3)线程同步
  • Elsevier latex报错Paragraph ended before \@citex was complete.<to be read again>
  • 王毅在金砖正式成员和伙伴国外长会上的发言
  • 当农民跨进流动的世界|劳动者的书信①
  • 耶路撒冷发生山火,以防长宣布紧急状态
  • 秦洪看盘|资金切换主线,重构市场风格
  • 中国海警位中国黄岩岛领海及周边区域执法巡查
  • 擦亮“世界美食之都”金字招牌,淮安的努力不止于餐桌