Могу ли я определить другой тип столбца внешнего ключа из родительской таблицы? - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно подключиться к базе данных postgreSQL в отношении, как в коде.Проблема в базе данных "id" в таблице "b" это "bigint" и "b_id" в таблице "a" это "integer", prod db не в моем контроле, поэтому я не могу изменить его.

"b_id" в "a" не определен как внешний ключ, поэтому, вероятно, postgre и допустил это.

Как и ожидалось, hibernate throws "нашел [int4 (Types # INTEGER)], но ожидал [integer (Types # BIGINT)] "

Если я создаю таблицы с помощью hibernate, он определяет" b_id "в таблице" a "как" bigint ", как и ожидалось

Какой будет лучший способ проверкисхема без изменения типов в базе данных?

@Entity
@Table(name = "a")
public class A {

    @ManyToOne
    @JoinColumn(name = "b_id")
    @NotNull
    private B bId;

    ...
}

@Entity
@Table(name = "b")
public class B {

    @Id
    private Long id;

    ...
}

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать элемент columnDefinition в своем классе A.

@Entity
@Table(name = "a")
public class A {

    @ManyToOne
    @JoinColumn(name = "b_id", columnDefinition = "int")
    @NotNull
    private B bId;

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