我有一个组件对象
package com.entities;
@Entity
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(nullable = false, unique = true)
private String name;
protected Author() {
// for JPA
}
public Author(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Author{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
我想生成DDL
(create,alter,drop
)脚本来存储对象。
我不希望任何自动ddl配置为我创建表,而是希望Liquibase
为我生成表。我怎样才能做到这一点 ?我将能够提供相同的元数据。我需要JPA
的脚本。
我尝试通过将databaseChangeLog
提供给Liquibase
来进行生成,并且这样子
<?xml version="1.0" encoding="UTF-8"?>
<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.1.xsd">
<changeSet author="John (generated)" id="1439225004329-1">
<createTable tableName="Author ">
<column autoIncrement="true" name="id" type="BIGINT">
<constraints primaryKey="true"/>
</column>
<column name="name" type="VARCHAR(255)"/>
</createTable>
</changeSet>
</databaseChangeLog>
此处,changelog期望的类型是db上的列的类型。如何使用Liquibase从属性类型为字符串的(属于属性名称)解析类型(VARCHAR)?