我有两个具有相同名称的实体,但是在不同的包中。对我而言,显然应该有效。实体没有重复的名称。
但是我收到了一个错误:
Caused by: org.hibernate.AnnotationException: Use of the same entity name twice: Variant
我找到了解决方案,告诉我使用字符串值作为@Entity
注释的name属性的参数,例如:
@Entity(name="legal_Variant")
但我不想在代码中使用字符串。可以通过其他方式完成吗? F.E.使用java反射,或以某种方式配置JPA
使用整个名称(包名称)?
对我来说这很奇怪。我认为JPA
也会处理包名。
我的课程代码:
package insurance.models.liability.hiv;
@Entity
@Table(name="lLiability_Part_Hiv_Var")
public class Variant extends GenericDictionary<Variant> {
}
package insurance.models.liability.legal;
@Entity
@Table(name="liability_Part_Legal_Var")
public class Variant extends GenericDictionary<Variant> {}
答案 0 :(得分:0)
可以在映射文件中完成:
<hibernate-mapping>
<import class="insurance.models.liability.legal.Variant" rename="Var1" />
</hibernate-mapping>
您现在可以使用HQL查询,例如
from Var1