java - liquibase 变更集中的继承

标签 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 中创建继承结构。怎么办?

谢谢。

最佳答案

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

也就是说,如果您想让 liquibase 为您的两个实体类创建表,您将需要弄清楚 JPA 期望这些表是什么样子,并编写匹配的 liquibase 语句。在不知道 AuditingEntity 的情况下,我无法提供确切的声明,但基本上您最终会得到一个表 PERSONNE ,其中包含 Personne 的所有属性和雇主

关于java - liquibase 变更集中的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41759691/

相关文章:

java - swing中视觉组件的动态更新

java - 使用 Selenium 和 Java,我需要一种比 "CSSSelector"更好的方法来选择单选按钮,因为不同单选组中具有相同名称的值

java - Mockito findByIdOrNull 问题

spring-boot - liquibase.integration.spring.SpringLiquibase 可从 spring boot 中的 2 个位置错误

mysql - 为 liquibase 中的插入查询定义变更集

testing - 如果 liquibase 格式的 sql 已经存在,我如何让 liquibase 跳过表创建?

java - 如何在 UML 中表示 Java 集合值属性?

java - 我如何才能从任何类访问这个数组?

java - 无法在 Spring JPA 中创建 INNER JOIN 查询

java - JPA 在 ManyToOne 关系中持久化对象