Closed WangJieWJ closed 1 year ago
发一下Mapper接口的定义和实体类定义(不需要内部方法和字段)
org.mybatis.spring.MyBatisSystemException:
nested exception is org.apache.ibatis.builder.BuilderException:
Error invoking SqlProvider method
'public static java.lang.String io.mybatis.mapper.example.ExampleProvider.selectByExample(
org.apache.ibatis.builder.annotation.ProviderContext)' with specify parameter
'class io.mybatis.mapper.example.Example'. Cause: java.lang.ClassCastException:
io.mybatis.provider.defaults.GenericTypeResolver$ParameterizedTypeImpl cannot be cast to java.lang.Class
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96) ~[mybatis-spring-2.0.7.jar:2.0.7]
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) ~[mybatis-spring-2.0.7.jar:2.0.7]
实体类定义
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity.Table(value = "sys_menu", remark = "系统菜单", autoResultMap = true)
public class SysMenu {
// 字段
}
Mapper接口的定义
@org.apache.ibatis.annotations.Mapper
public interface SysMenuMapper extends Mapper<SysMenu, String>, ListMapper<SysMenu> {
}
将这部分代码单独拿出来,放到一个DEMO工程中,可以正常执行,没有任何报错。 请问有什么排查思路吗?
问题解决了,是因为Entity中有一个List集合字段,需要加上 @Entity.Transient 来排除掉
通过Example查询的时候会报错【在1.2.2版本下,方法可以正常执行,但是升级2.X之后,就会报错】
具体用法:![image](https://github.com/mybatis-mapper/mapper/assets/16323371/64c3c55a-cfcb-4a48-96ca-b2fc7ab6a604)
POM依赖:【仅引入了mybatis-service、mybatis-mapper】
报错信息: