继承类

时间:2015-07-08 18:48:25

标签: java hibernate jpa inheritance

我正在迁移到JPA 2.1,我想将@org.hibernate.annotations.ForeignKey替换为继承类中的内容。

在字段中,确定:

@ManyToOne
@JoinColumn(name = "any_columm_field_id",
     foreignKey = @javax.persistence.ForeignKey(name = "any_name_field_fk"))

但是在继承类中,该怎么做?

示例代码:

超级

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "ANY_SUPER_TABLE_NAME")
public abstract class AnySuperClass { }

特定班级

@Entity
@Table(name = "ANY_SPECIFIC_TABLE_NAME")
// TODO Replace to JPA 2.1
// @org.hibernate.annotations.ForeignKey(name = "any_specific_any_super_fk")
public class AnySpecificClass extends AnySuperClass { }

任何帮助?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

根据doc,应该这样做:

@Entity
@Table(name = "ANY_SPECIFIC_TABLE_NAME")
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "any_specific_any_super_fk"))
public class AnySpecificClass extends AnySuperClass { }

虽然使用嵌入式注释找到答案并不容易......但是你应该在哪里使用它并不明显。

一年后不确定这对你有帮助......