使用“通用mapper”时,报错信息如下:
tk.mybatis.mapper.MapperException: java.lang.IllegalStateException: No typehandler found for property components:
原因:
1.可能是类的成员变量 和 数据库字段的名字没有对应上,需要一一对应。1.1注意驼峰命名:Java的驼峰命名会被转换成下划线命名方式,如通用mapper对Java中的字段userId,会在数据库中寻找“user_id”字段。
1.2如果名字无法对应:需要使用@Column(name = “数据库字段”)注解为Java中的字段指定对应的数据库字段是什么,比如:
@Column(name = "userId")
private int userId;
2.不在数据库中的实体类字段,也就是只存在于实体类而不存在于数据库中的字段,一定一定要加@Transient注解,比如一些List或者Map:
@Transient
private List<ComponentVo> componentVos = new ArrayList<>();