Hibernate OneToMany映射报Could not determine type for java.util.List错误求助
报错核心原因
Hibernate未识别到liaisonAttributList字段上的@OneToMany关联注解,将其当成了需要映射到数据库表的普通字段,因此抛出找不到对应数据库列类型的错误。
排查解决步骤
- 核对
@OneToMany注解的导入包是否正确
根据你使用的JPA版本选择正确的导入路径,不要导入非JPA规范的同名注解:// JPA 2.2及之前 / Hibernate 5.x / Spring Boot 2.x 版本使用 import javax.persistence.OneToMany; // JPA 3.0及之后 / Hibernate 6.x / Spring Boot 3.x 版本使用 import jakarta.persistence.OneToMany; - 确认实体类的注解位置统一
JPA要求同一个实体类内注解要么全部加在字段上,要么全部加在getter方法上,不能混合使用。你当前@Id注解加在idAttribut字段上,所以@OneToMany必须直接加在liaisonAttributList字段的上方,不能加在对应的getter方法上。 - 检查泛型声明是否完整
确认你实际代码中liaisonAttributList的泛型List<LiaisonAttributProduitEntity>没有遗漏,如果只写了无泛型的List,Hibernate无法识别关联的实体类型,也会触发该报错。 - 可主动指定关联实体类型
如果上述排查都没问题,可以给@OneToMany增加targetEntity属性明确指定关联类,强制Hibernate识别关联关系:@OneToMany(mappedBy = "attributEntity", targetEntity = LiaisonAttributProduitEntity.class) private List<LiaisonAttributProduitEntity> liaisonAttributList; - 确认关联实体已被JPA扫描
检查LiaisonAttributProduitEntity类上的@Entity注解导入正确,且该类在你的JPA实体扫描路径范围内。
内容的提问来源于stack exchange,提问作者Smylif3
相关产品推荐
相关产品推荐

