use of the same entity name twice

使用hibernate开发的过程中产生了【use of the same entity name twice】这样的错误,记录下原因。

背景

spring的依赖注入(使用注解)在注册bean的时候,如果没有手动给bean命名(注解参数,比如@Component("yanggb")),那么spring就会自动将类名解析为bean名。

而使用hibernate的时候同样使用的是spring提供的注解(或是hibernate自定义的),也会有同样的问题存在。

原因

如果这个时候,在两个不同的包下有两个相同的实体类名(解析成相同的bean名,导致注入重复)的话,在写代码的时候不会报错,但是一旦编译了,就会报这个错误。

这个错误只会出现在使用注解(比如@Entity)的情况下,因为使用xml的方式的话,声明bean是会带上包名的。

解决办法

手动添加bean名(比如@Entity(name="yanggb")),或使用xml的方式代替注解的方式(我不听我不听)。

"你是一阵穿堂风,无意偏偏引山洪。"

猜你喜欢

转载自www.cnblogs.com/yanggb/p/12969480.html
今日推荐