Liquibase, как добавить группу полей, как первичный ключ? - PullRequest
0 голосов
/ 30 января 2019

У меня есть объект с группой полей в первичном ключе.Например:

@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 String и 2 Integer.

У меня есть и я использую Liquidbase для своего проекта в файле XML, но я не знаю, какпредставить этот идентификатор 4 полей в liquidbase.

Спасибо за вашу помощь :)

Ответы [ 2 ]

0 голосов
/ 30 января 2019

В <addPrimaryKey вы можете настроить columnNames для всех ваших столбцов, составляющих ваш первичный ключ

<changeSet author="liquibase-docs" id="addPrimaryKey-example">
    <addPrimaryKey
        columnNames="id, name"
        constraintName="pk_person"
        schemaName="public"
        tableName="person"
        tablespace="A String"/>
</changeSet>
0 голосов
/ 30 января 2019

Назначьте им одинаковые 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>
...