Java 自动将实体对象转换为变更集

Java 自动将实体对象转换为变更集,java,jpa,liquibase,Java,Jpa,Liquibase,我在Java项目中创建了许多这样的实体: @Data @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Table(name="backup_item") public class BackupItem { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long id; public Path pat

我在Java项目中创建了许多这样的实体:

@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name="backup_item")
public class BackupItem {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long id;
    public Path path;
}
现在我需要为它创建更改日志:

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">

    <changeSet id="1" author="rrrr">
        <sql>
            CREATE TABLE backup_item(
            id SERIAL PRIMARY KEY NOT NULL,
            );
        </sql>
        <rollback>
            DROP TABLE backupset;
        </rollback>
    </changeSet>

创建表备份\u项(
id序列主键不为空,
);
升降台翻转;

有没有什么工具可以自动为我创建它?我至少有10个表,手动一个一个地创建它们需要很多时间。

您可以使用liquibase maven插件,如第6章所示。(标题:使用Maven插件生成变更日志)本教程:

尽管自动生成的变更日志并不可靠,我甚至看到过liquibase开发者不推荐的帖子。它们不支持很多东西,比如检测重命名的列等


建议手动编写更改日志,因为您可以更好地控制脚本本身。

您需要
Hibernate Envers
Spring Data JPA审核。这里有一些例子不,只要我知道liquibase确实支持某种类型的代码生成器,但它还不够,比如.NET的SQL迁移,如果需要可靠的脚本,您必须自己编写。如果您有一个使用这些表创建的数据库,您可以使用liquibase为您生成更改日志。因此,如果我理解正确,我将使用这3种方法之一,它将自动创建DB表?我更新了答案,从第6章开始:使用Maven插件生成变更日志