Java 自动将实体对象转换为变更集
我在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
@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插件生成变更日志