https://github.com/baomidou/mybatis-plus/blob/4651ceaea73f0488d2d7018102b717b32f124947/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java#L52

在新版本的 Spring 以及 Mybatis-Spring 中,NestedIOException 已被移除,直接使用 IOException 替代,见 https://github.com/mybatis/spring/pull/663

请问mybatis-plus 将会计划在何时兼容这一举措呢?

Comment From: miemieYaho

等myabtis-soring发新版后并且我们有发版计划的时候

Comment From: MQPearth

等myabtis-soring发新版后并且我们有发版计划的时候

不能先发个SNAPSHOT吗

Comment From: FirokOtaku

项目在新环境拉取了一遍依赖, 已经开始爆炸了 🎉

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.0-M4</version>
    <relativePath/>
</parent>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: org/springframework/core/NestedIOException
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:161) ~[spring-beans-6.0.0-M5.jar:6.0.0-M5]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:629) ~[spring-beans-6.0.0-M5.jar:6.0.0-M5]
    ... 72 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/NestedIOException
    at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:163) ~[mybatis-plus-boot-starter-3.5.2.jar:3.5.2]
    ...
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:130) ~[spring-beans-6.0.0-M5.jar:6.0.0-M5]

Comment From: FirokOtaku

项目在新环境拉取了一遍依赖, 已经开始爆炸了 🎉

可选方案之一是自己创建一个 org/springframework/core/NestedIOException 类, 把该继承的构造方法都写上. 参考 这里.

package org.springframework.core;

public class NestedIOException extends Exception
{
    public NestedIOException()
    {
        super();
    }

    public NestedIOException(String message)
    {
        super(message);
    }

    public NestedIOException(String message, Throwable cause)
    {
        super(message, cause);
    }

    public NestedIOException(Throwable cause)
    {
        super(cause);
    }

    protected NestedIOException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
    {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

简单测试, 可以正常启动并使用各数据库 API.

Comment From: linghengqian

  • I am working on this issue.