SpringBoot报错:nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk.test.User matching [java.lang.Long, java.lang.String, java.lang.String]

错误提示:
Caused by: org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk._161_java_socket.project6.entity.User matching [java.lang.Long, java.lang.String, java.lang.String]
这里就有点坑了,明明提示的是没有三个参数的构造函数,然而我添加上三个参数的构造函数还是报错
解决方法:
添加一个无参构造函数(可以不添加三个参数的构造函数)。
在这里可以理解成使用 Mybatis 查询一个实例时,这个抽象实体类必须有一个无参构造方法
注:
默认情况下,每一个实体类都有一个无参构造函数。
如果我们自己添加一个有参构造函数,则默认的无参构造函数失效,需手动添加无参构造函数

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk._161_java_socket.project6.entity.User matching [java.lang.Long, java.lang.String, java.lang.String]
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">mybatis</span>.<span class="hljs-title">spring</span>.<span class="hljs-title">MyBatisExceptionTranslator</span>.<span class="hljs-title">translateExceptionIfPossible</span><span class="hljs-params">(MyBatisExceptionTranslator.java:77)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">mybatis</span>.<span class="hljs-title">spring</span>.<span class="hljs-title">SqlSessionTemplate</span>$<span class="hljs-title">SqlSessionInterceptor</span>.<span class="hljs-title">invoke</span><span class="hljs-params">(SqlSessionTemplate.java:446)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">sun</span>.<span class="hljs-title">proxy</span>.$<span class="hljs-title">Proxy54</span>.<span class="hljs-title">selectOne</span><span class="hljs-params">(Unknown Source)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">mybatis</span>.<span class="hljs-title">spring</span>.<span class="hljs-title">SqlSessionTemplate</span>.<span class="hljs-title">selectOne</span><span class="hljs-params">(SqlSessionTemplate.java:166)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">apache</span>.<span class="hljs-title">ibatis</span>.<span class="hljs-title">binding</span>.<span class="hljs-title">MapperMethod</span>.<span class="hljs-title">execute</span><span class="hljs-params">(MapperMethod.java:83)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">apache</span>.<span class="hljs-title">ibatis</span>.<span class="hljs-title">binding</span>.<span class="hljs-title">MapperProxy</span>.<span class="hljs-title">invoke</span><span class="hljs-params">(MapperProxy.java:59)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">sun</span>.<span class="hljs-title">proxy</span>.$<span class="hljs-title">Proxy57</span>.<span class="hljs-title">findOneById</span><span class="hljs-params">(Unknown Source)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">tuyrk</span>._161_<span class="hljs-title">java_socket</span>.<span class="hljs-title">project6</span>.<span class="hljs-title">service</span>.<span class="hljs-title">impl</span>.<span class="hljs-title">UserServiceImpl</span>.<span class="hljs-title">findUserById</span><span class="hljs-params">(UserServiceImpl.java:33)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">tuyrk</span>._161_<span class="hljs-title">java_socket</span>.<span class="hljs-title">project6</span>.<span class="hljs-title">service</span>.<span class="hljs-title">impl</span>.<span class="hljs-title">UserServiceImplTest</span>.<span class="hljs-title">findUserById</span><span class="hljs-params">(UserServiceImplTest.java:27)</span>
<span class="hljs-title">at</span> <span class="hljs-title">sun</span>.<span class="hljs-title">reflect</span>.<span class="hljs-title">NativeMethodAccessorImpl</span>.<span class="hljs-title">invoke0</span><span class="hljs-params">(Native Method)</span>
<span class="hljs-title">at</span> <span class="hljs-title">sun</span>.<span class="hljs-title">reflect</span>.<span class="hljs-title">NativeMethodAccessorImpl</span>.<span class="hljs-title">invoke</span><span class="hljs-params">(NativeMethodAccessorImpl.java:62)</span>
<span class="hljs-title">at</span> <span class="hljs-title">sun</span>.<span class="hljs-title">reflect</span>.<span class="hljs-title">DelegatingMethodAccessorImpl</span>.<span class="hljs-title">invoke</span><span class="hljs-params">(DelegatingMethodAccessorImpl.java:43)</span>
<span class="hljs-title">at</span> <span class="hljs-title">java</span>.<span class="hljs-title">lang</span>.<span class="hljs-title">reflect</span>.<span class="hljs-title">Method</span>.<span class="hljs-title">invoke</span><span class="hljs-params">(Method.java:498)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">model</span>.<span class="hljs-title">FrameworkMethod</span>$1.<span class="hljs-title">runReflectiveCall</span><span class="hljs-params">(FrameworkMethod.java:50)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">internal</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">model</span>.<span class="hljs-title">ReflectiveCallable</span>.<span class="hljs-title">run</span><span class="hljs-params">(ReflectiveCallable.java:12)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">model</span>.<span class="hljs-title">FrameworkMethod</span>.<span class="hljs-title">invokeExplosively</span><span class="hljs-params">(FrameworkMethod.java:47)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">internal</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">InvokeMethod</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(InvokeMethod.java:17)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunBeforeTestExecutionCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunBeforeTestExecutionCallbacks.java:74)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunAfterTestExecutionCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunAfterTestExecutionCallbacks.java:84)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunBeforeTestMethodCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunBeforeTestMethodCallbacks.java:75)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunAfterTestMethodCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunAfterTestMethodCallbacks.java:86)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">SpringRepeat</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(SpringRepeat.java:84)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>.<span class="hljs-title">runLeaf</span><span class="hljs-params">(ParentRunner.java:325)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">SpringJUnit4ClassRunner</span>.<span class="hljs-title">runChild</span><span class="hljs-params">(SpringJUnit4ClassRunner.java:251)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">SpringJUnit4ClassRunner</span>.<span class="hljs-title">runChild</span><span class="hljs-params">(SpringJUnit4ClassRunner.java:97)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>$3.<span class="hljs-title">run</span><span class="hljs-params">(ParentRunner.java:290)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>$1.<span class="hljs-title">schedule</span><span class="hljs-params">(ParentRunner.java:71)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>.<span class="hljs-title">runChildren</span><span class="hljs-params">(ParentRunner.java:288)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>.<span class="hljs-title">access</span>$000<span class="hljs-params">(ParentRunner.java:58)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>$2.<span class="hljs-title">evaluate</span><span class="hljs-params">(ParentRunner.java:268)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunBeforeTestClassCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunBeforeTestClassCallbacks.java:61)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">statements</span>.<span class="hljs-title">RunAfterTestClassCallbacks</span>.<span class="hljs-title">evaluate</span><span class="hljs-params">(RunAfterTestClassCallbacks.java:70)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runners</span>.<span class="hljs-title">ParentRunner</span>.<span class="hljs-title">run</span><span class="hljs-params">(ParentRunner.java:363)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">springframework</span>.<span class="hljs-title">test</span>.<span class="hljs-title">context</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">SpringJUnit4ClassRunner</span>.<span class="hljs-title">run</span><span class="hljs-params">(SpringJUnit4ClassRunner.java:190)</span>
<span class="hljs-title">at</span> <span class="hljs-title">org</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">runner</span>.<span class="hljs-title">JUnitCore</span>.<span class="hljs-title">run</span><span class="hljs-params">(JUnitCore.java:137)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">intellij</span>.<span class="hljs-title">junit4</span>.<span class="hljs-title">JUnit4IdeaTestRunner</span>.<span class="hljs-title">startRunnerWithArgs</span><span class="hljs-params">(JUnit4IdeaTestRunner.java:68)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">intellij</span>.<span class="hljs-title">rt</span>.<span class="hljs-title">execution</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">IdeaTestRunner</span>$<span class="hljs-title">Repeater</span>.<span class="hljs-title">startRunnerWithArgs</span><span class="hljs-params">(IdeaTestRunner.java:47)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">intellij</span>.<span class="hljs-title">rt</span>.<span class="hljs-title">execution</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">JUnitStarter</span>.<span class="hljs-title">prepareStreamsAndStart</span><span class="hljs-params">(JUnitStarter.java:242)</span>
<span class="hljs-title">at</span> <span class="hljs-title">com</span>.<span class="hljs-title">intellij</span>.<span class="hljs-title">rt</span>.<span class="hljs-title">execution</span>.<span class="hljs-title">junit</span>.<span class="hljs-title">JUnitStarter</span>.<span class="hljs-title">main</span><span class="hljs-params">(JUnitStarter.java:70)</span>

Caused by: org.apache.ibatis.executor.ExecutorException: No constructor found in com.tuyrk.161java_socket.project6.entity.User matching [java.lang.Long, java.lang.String, java.lang.String]
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createByConstructorSignature(DefaultResultSetHandler.java:668)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:621)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.createResultObject(DefaultResultSetHandler.java:594)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:396)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:355)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:330)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:303)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:196)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
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.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 37 more