org.hibernate.MappingException: Could not determine type for:
报错问题:提示 Could not determine type for: com.yt.yhgl.entity.UserCertificate, at table: user, for columns: [org.hibernate.mapping.Column(user_certificate)]、耽误了小半个小时。
看了网上的很多解决方法比如注解要么写在字段上,要么写在getXX上,不能混合使用,否则会报这个错误,试过不行。
根本问题:最后发现是实体类上有@Entity注解和@TableField(exist = false)冲突。
原因是@Entity注解和@TableField(exist = false)是两个不同的注解,来自于不同的框架。
@Entity注解来自于JPA规范,用于标识一个Java类为实体类,
而@TableField注解来自于MyBatis-Plus框架,用于标识一个Java类的属性与数据库表中的字段的映射关系。因为这两个注解来自于不同的框架,所以它们的作用和使用方式也不同。在同一个Java类中同时使用这两个注解是会导致编译错误。
也可以把@TableField(exist = false)换成@Transient注解
因为@Transient和@Entity同样来自于JPA规范,@Transient也是用来标识一个Java类的属性不需要进行持久化。
还没有评论,来说两句吧...