Hibernate注解异常:@OneToMany/@ManyToMany指向未映射类求助
这个错误我踩过好多次了!本质就是Hibernate找不到你entities.Pagamento类的映射配置,所以它没法处理Cliente.pagamenti这个一对多关联。给你列几个最可能的排查方向:
检查
Pagamento类是否添加了@Entity注解
这是最常见的疏漏!你的Cliente类加了@Entity,但如果关联的Pagamento没加这个注解,Hibernate根本不会把它当成实体类处理。正确的写法应该是这样:@Entity @Table(name = "pagamenti") // 对应数据库表名,可选但建议加上 public class Pagamento { // 你的字段、主键及关联注解 }确认Hibernate能扫描到
entities包下的所有实体类
如果是用XML配置(比如hibernate.cfg.xml),要确保里面手动添加了Pagamento的映射:<mapping class="entities.Pagamento"/>如果是Spring/Spring Boot项目,要检查
@EntityScan注解有没有覆盖entities包,或者@ComponentScan的路径是否包含这个包。核对类名和包名的拼写
有没有大小写错误?比如把Pagamento写成pagamento,或者包名写成entity少了个s?Hibernate对类路径的大小写是敏感的(尤其是在Linux/Mac环境下)。检查编译后的class文件
有时候IDE没自动编译,或者编译过程中Pagamento类报错导致没生成class文件。去项目的target/classes(Maven)或build/classes(Gradle)目录下看看,有没有entities/Pagamento.class这个文件。
你可以先从第一个点查起,大概率是忘加@Entity注解了!
内容的提问来源于stack exchange,提问作者Dean Winchester

