@SecondaryTable注释在不同的Schema中不使用相同的表名

时间:2018-02-07 21:13:18

标签: java hibernate jpa orm

我在不同的模式中有两个具有相同名称的表,我正在尝试使用这些表和@SecondaryTable创建一个实体。它给我以下错误

InFlightMetadataCollector$DuplicateSecondaryTableException: Table with that name [EMPLOYEE] already associated with entity

这是我的代码

@Entity
@Table(name = "EMPLOYEE", schema = "S1", catalog = "")
@SecondaryTable(name = "EMPLOYEE",  schema = "S2", catalog = "", pkJoinColumns = {@PrimaryKeyJoinColumn(name = "EID", referencedColumnName = "ENO")})
public class Employee {

2 个答案:

答案 0 :(得分:1)

这似乎是Hibernate中的一个错误,Hibernate ORM团队在票证HHH-12423上说这是修复的,并且可以从hibernate版本5.3.0获得

答案 1 :(得分:0)

name必须是唯一的才能在列注释中引用...我有两个想法,我没有尝试....你可以为一个数据库表创建一个别名,如果你有privelege做,然后参考这个别名(我不知道它是否有效)....或者您可以将表名定义为" s1.employee"和" s2.employee" ,一些提供商允许它但我不确定hibernate是否有...如果其中任何一个与你合作请告诉我们

相关问题