Добавление внешнего ключа (Lquidbase) - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь добавить внешний ключ, который будет ссылаться на первичный ключ в другой таблице, и этот первичный ключ будет в столбце user_id, но по какой-то причине я получаю исключение грамматики

 <changeSet id="add-export_users-table" author="artjom.prozorov">
    <preConditions>
        <not>
            <tableExists tableName="export_users"/>
        </not>
    </preConditions>
    <createSequence sequenceName="export_users_id_seq"/>
    <createTable tableName="export_users">
        <column name="id" type="BIGINT"/>
        <column name="user_id"/>
    </createTable>
    <addNotNullConstraint tableName="export_users" columnName="id"/>
    <addPrimaryKey tableName="export_users" columnNames="id"/>
    <addForeignKeyConstraint baseTableName="export_users"  baseColumnNames="user_id" constraintName="export_users_fk"
                             referencedTableName="users"
                             referencedColumnNames="user_id"/>



  Export class 
       @OneToOne
    @JoinColumn(name = "user_id")
    private UserEntity userEntity;

UserEntity class 
 @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id_seq")
    @SequenceGenerator(name = "user_id_seq", sequenceName = "public.user_id_seq", allocationSize = 0)
    private Long id;

1 Ответ

1 голос
/ 20 апреля 2020
<addForeignKeyConstraint baseTableName="export_users"
    baseColumnNames="user_id"
    constraintName="export_users_fk"
    referencedTableName="users"
    referencedColumnNames="user_id"/>

Предполагается, что идентификатор таблицы users равен user_id, но поскольку я не вижу никаких комментариев на вашем UserEntity @Id, я предполагаю, что его идентификатор довольно просто называется id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...