我在不同的模式中有两个具有相同名称的表,我正在尝试使用这些表和@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 {
答案 0 :(得分:1)
这似乎是Hibernate中的一个错误,Hibernate ORM团队在票证HHH-12423上说这是修复的,并且可以从hibernate版本5.3.0获得
答案 1 :(得分:0)
name必须是唯一的才能在列注释中引用...我有两个想法,我没有尝试....你可以为一个数据库表创建一个别名,如果你有privelege做,然后参考这个别名(我不知道它是否有效)....或者您可以将表名定义为" s1.employee"和" s2.employee" ,一些提供商允许它但我不确定hibernate是否有...如果其中任何一个与你合作请告诉我们