Liquibase,如何添加一组字段,如主键?

时间:2019-01-30 12:17:18

标签: spring liquibase

我有一个实体,在主键中有一组字段。 像这样:

@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类包含2个字符串和2个整数。

我已经并且在我的项目中以XML文件使用Liquidbase,但是,我不知道如何在Liquidbase中表示此4个字段的ID。

感谢您的帮助:)

3 个答案:

答案 0 :(得分:1)

<addPrimaryKey中,您可以按构成主键的所有列来配置columnNames

<changeSet author="liquibase-docs" id="addPrimaryKey-example">
    <addPrimaryKey
        columnNames="id, name"
        constraintName="pk_person"
        schemaName="public"
        tableName="person"
        tablespace="A String"/>
</changeSet>

答案 1 :(得分:0)

为他们分配相同的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>

答案 2 :(得分:0)

或单独添加

<addPrimaryKey tableName="REPRESENTATIVE" columnNames="REPRESENTED_USER_ID,REPRESENTATIVE_ID"
                constraintName="REPRESENTED_REPRESENTATIVE_PK" />