liquibase变更集中的继承

时间:2017-01-20 09:02:43

标签: java jpa liquibase

我在我的应用程序中使用继承概念。

父类:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "NATURE_PERSONNE", discriminatorType =  DiscriminatorType.STRING, length = 4)
@Table(name = "PERSONNE")
public class Personne extends AuditingEntity implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NOM")
    private String nom;

    @Column(name = "PRENOM")
    private String prenom;
        ...
  }

儿童班:

@Entity
@DiscriminatorValue("EMPL")
public class Employeur extends Personne {

    @Column(name = "DATE_DEBUT_TRAVAIL")
    private LocalDate dateDebutTravail;

    @Column(name = "EMPLOI")
    private String emploi;
    ....
}

是否有可能在Liquibase中创建继承结构。怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

基本上liquibase不关心继承。它只关心数据库结构,例如模式,表和索引。

如果你想让liquibase为你的两个实体类创建表,你需要弄清楚JPA期望这些表的样子并编写匹配的liquibase语句。在不知道AuditingEntity的情况下,我无法提供确切的陈述,但基本上您最终会得到一个包含PERSONNEPersonne所有属性的Employeur个表格。