У меня есть объект компонента
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) из типа атрибута, который является строкой (имени атрибута)?