前言
今天在做项目时出现了很奇怪的异常,项目是 Hibernate 框架,生成了两个实体类,启动项目时报错。
异常信息
Invocation of init method failed;
nested exception is org.hibernate.AnnotationException:
Use of the same entity name twice: WExamResultEntity
Google翻译为
调用init方法失败;
嵌套异常是org.hibernate.AnnotationException:
两次使用相同的实体名称:WExamResultEntity
意思就是说我有两个实体名称相同WExamResultEntity
,这就奇怪了,这个两个实体并不相同,这就很奇怪。(最后找到原因,果然有两个相同的实体名对应一个表,所以会报错,是同事把这个实体放到另一个包下,导致的)
实体类一
WExamResultEntity
实体类二
WExamResultDetailEntity
现在暂时还不知道是什么原因,后面知道原因在补充,先解决了问题在说。
解决办法
在两个实体的 @Entity
注解上加上 name = 具体的实体路径即可
WExamResultEntity
@Entity(name = "xxx.xxx.entity.WExamResultDetailEntity")
public class WExamResultDetailEntity {
省略
}
WExamResultDetailEntity
@Entity(name = "xxx.xxx.entity.WExamResultEntity")
public class WExamResultEntity {
省略
}