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的方式代替注解的方式(我不听我不听)。
"你是一阵穿堂风,无意偏偏引山洪。"
你要去做一个大人,不要回头,不要难过。