Comments (10)
Hi,这个问题有解决方案?
尝试加了:restart.include.mybatiscommon=/mapper-[\w-]+.jar到spring-devtools.properties
还是无效。
问题确认:
selectByPrimaryKey(xx)返回的对象是来源于AppClassLoader,其它因为配置了devtools使用了RestartClassLoader。
使用mybatis自定义查询方法返回的对象也是来源于RestartClassLoader.
from mybatis-spring-boot.
@tsball
你这应该是正则表达式的问题,需要匹配的是 mapper-3.3.9(当前引入的版本号).jar
试试 restart.include.mybatiscommon=/mapper-\\d+(\\.\\d+){0,2}.jar
reference:using-boot-devtools-customizing-classload
from mybatis-spring-boot.
http://stackoverflow.com/questions/826319/classcastexception-when-casting-to-the-same-class
我也遇到了这种问题,查找了半天,还是不能解决
from mybatis-spring-boot.
@noob9527
我用了你的那个配置还是不行,直接启动就报错,这是我的pom.xml:
`
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!--数据库-->
<ojdbc.version>12.1.0.1</ojdbc.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--添加对web的支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--zuul-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
<!--Spring Boot Actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--开发环境的调试修改实时生效-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--test-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<!--oracle-->
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>${ojdbc.version}</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.MapperAutoConfiguration': Invocation of init method failed; nested exception is java.lang.RuntimeException: tk.mybatis.mapper.provider.EmptyProvider中缺少selectOne方法!
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
at com.example.Application.main(Application.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.RuntimeException: tk.mybatis.mapper.provider.EmptyProvider中缺少selectOne方法!
at tk.mybatis.mapper.mapperhelper.MapperHelper.fromMapperClass(MapperHelper.java:159)
at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:173)
at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:179)
at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:179)
at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:179)
at tk.mybatis.mapper.mapperhelper.MapperHelper.registerMapper(MapperHelper.java:179)
at com.github.pagehelper.autoconfigure.MapperAutoConfiguration.addPageInterceptor(MapperAutoConfiguration.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
... 23 common frames omitted
`
from mybatis-spring-boot.
@workcheng 去掉 devtool 就行,上面的配置不行,你要排除的类是你自己实体所在的 jar 包,这么配置也不方便。
from mybatis-spring-boot.
这个问题解决方式只能在pom.xml中去掉 devtool吗?是否还有其他方式?
from mybatis-spring-boot.
@yanghdx
spring boot dev-tool
对第三方jar包使用"base" class loader
对IDE project目录下的Class使用"restart" class loader
restart.include.mybatiscommon=/mapper-\\d+(\\.\\d+){0,2}.jar
这行配置是告诉devtool使用"restart" class loader 来加载mapper jar包中的类,一般来说这样就可以解决问题了。
from mybatis-spring-boot.
@noob9527
添加配置后,pagehelper 报错。信息是:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.MapperAutoConfiguration': Invocation of init method failed; nested exception is java.lang.RuntimeException: tk.mybatis.mapper.provider.EmptyProvider中缺少selectOne方法!
from mybatis-spring-boot.
@yanghdx 这是通用 Mapper 报错。。
from mybatis-spring-boot.
我这么配置是好使的(正则就是匹配mybatis、mapper、pagehelper开头的全部,比较暴力一些)
restart.include.pagehelpercommon=/pagehelper..jar
restart.include.mybatiscommon=/mybatis..jar
restart.include.mappercommon=/mapper.*.jar
from mybatis-spring-boot.
Related Issues (20)
- 将 mybatis-spring-boot-starter:1.3.2升级2.0.0 程序报错 HOT 1
- 请问此项目不支持yml配置吗?一定要使用properties? HOT 1
- 分页
- 在springboot中如何配置自定义的mybatis拦截器和分页拦截器的执行书顺序 HOT 3
- 升级版2.0.0及以上报异常Caused by: java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseInsertProvider.<init>()。并且@tk.mybatis.spring.annotation.MapperScan("com.sinosoft.**.domain") HOT 2
- BaseResultMap怎么生成了两份 HOT 1
- [BUG] SpringBoot 2.1.7 异常信息如下 HOT 1
- 自定义interceptor和pageInterceptor执行顺序是如何 的,有没有办法指定执行顺序 HOT 1
- 当使用Example查询实体中包含名为rank的字段,在mysql8中会语法异常 HOT 1
- 当第一页就查出全部行数时不排序
- 建议添加支持JPA功能
- 请问在Spring boot 下单元测试使用@MybatisTest注解时,如何才能加载自动生成的类?
- 5.1.4的pagehelper的com.github.pagehelper.dialect.helper.OracleDialect类下的public String getPageSql(String sql, Page page, CacheKey pageKey)方法是不是有BUG?
- 数据库字段有默认值,但是使用自动生成的dao代码, insert语句不会插入默认值 HOT 1
- tk.mybatis.spring.mapper.ClassPathMapperScanner
- 分页 HOT 1
- Date类型转换成了Timestamp
- 能用在elasticsearch搜索分页码?
- pagehelper 页数传递超过总页数为啥不会返回空 HOT 1
- AggregationMapper使用报错
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mybatis-spring-boot.