不同包中具有相同名称的两个实体

时间:2015-05-05 08:04:31

标签: java hibernate jpa

我的项目中有两个具有相同名称的实体(但在不同的包中)会导致异常:

Use of the same entity name twice: MyEntity 

duplicate import: MyEntity refers to both packageOne.MyEntity and packageTwo.MyEntity (try using auto-import="false")

我尝试在我的auto-import中将属性false设置为persistence.xml,但它并没有改变任何内容:

<property name="hibernate.auto-import"  value="false"/>

是否存在另一种解决方案,而不是在实体注释中添加名称

@Entity(name="MyEntity_One")
@Entity(name="MyEntity_Two")

2 个答案:

答案 0 :(得分:3)

这意味着您的数据库中有两个具有相同名称的表,这种可能性极小。

您需要使用Entity.name值,或者如果您使用JPA,还可以使用javax.persistence.Table注释。

答案 1 :(得分:1)

我确定你没有收到编译时错误,它必须遇到它的部署错误。问题是当你在部署之前将其打包到耳朵/战争中时,这两个类都会进入服务器。虽然任何JPA应用程序容器都不知道要调用哪个类,但它会引发异常

你是不是可以扩展一个类并进行操作,或者你可以在另一个类中创建一个类的实例,并在它们之间添加一对一的映射。

相关问题