Liquibase,如何添加一组主键字段?
Liquibase , how to add a group of fields like primary key?
我有一个在主键中包含一组字段的实体。
像这样:
@Entity
@Table(name = "pv_object")
@NamedQuery(name = "PreviousObject.findAll", query = "SELECT p FROM PreviousObject p")
public class PreviousObject implements Serializable {
@EmbeddedId
private FieldsDTO fieldsdto;
//
}
FieldsDTO class 包含 2 个字符串和 2 个整数。
我已经在我的项目中的 XML 文件中使用了 Liquidbase,但是,我不知道如何在 liquidbase 中表示这 4 个字段的 ID。
感谢您的帮助:)
将相同的 primaryKeyName
分配给他们。
<createTable tableName="pv_object">
<column name="x" type="bigint">
<constraints nullable="false" primaryKey="true" primaryKeyName="PK_pv_object"/>
</column>
<column name="y" type="bigint">
<constraints nullable="false" primaryKey="true" primaryKeyName="PK_pv_object"/>
</column>
</createTable>
在 <addPrimaryKey
中,您可以通过构成主键的所有列配置 columnNames
<changeSet author="liquibase-docs" id="addPrimaryKey-example">
<addPrimaryKey
columnNames="id, name"
constraintName="pk_person"
schemaName="public"
tableName="person"
tablespace="A String"/>
</changeSet>
或单独添加
<addPrimaryKey tableName="REPRESENTATIVE" columnNames="REPRESENTED_USER_ID,REPRESENTATIVE_ID"
constraintName="REPRESENTED_REPRESENTATIVE_PK" />
我有一个在主键中包含一组字段的实体。 像这样:
@Entity
@Table(name = "pv_object")
@NamedQuery(name = "PreviousObject.findAll", query = "SELECT p FROM PreviousObject p")
public class PreviousObject implements Serializable {
@EmbeddedId
private FieldsDTO fieldsdto;
//
}
FieldsDTO class 包含 2 个字符串和 2 个整数。
我已经在我的项目中的 XML 文件中使用了 Liquidbase,但是,我不知道如何在 liquidbase 中表示这 4 个字段的 ID。
感谢您的帮助:)
将相同的 primaryKeyName
分配给他们。
<createTable tableName="pv_object">
<column name="x" type="bigint">
<constraints nullable="false" primaryKey="true" primaryKeyName="PK_pv_object"/>
</column>
<column name="y" type="bigint">
<constraints nullable="false" primaryKey="true" primaryKeyName="PK_pv_object"/>
</column>
</createTable>
在 <addPrimaryKey
中,您可以通过构成主键的所有列配置 columnNames
<changeSet author="liquibase-docs" id="addPrimaryKey-example">
<addPrimaryKey
columnNames="id, name"
constraintName="pk_person"
schemaName="public"
tableName="person"
tablespace="A String"/>
</changeSet>
或单独添加
<addPrimaryKey tableName="REPRESENTATIVE" columnNames="REPRESENTED_USER_ID,REPRESENTATIVE_ID"
constraintName="REPRESENTED_REPRESENTATIVE_PK" />