@ManyToOne через схемы создает неправильный FK - PullRequest
0 голосов
/ 16 января 2019

Я хочу, чтобы мои пользователи всегда сохранялись в центральной схеме и, следовательно, жестко кодировали ее:

@Entity
@Table(name = "user", schema = "central")
public class User {

    @Id
    @Column(name = "usr_id")
    private Long id;

    ...
}

Следующая сущность находится в других локальных схемах (определенных бизнес-логикой)и ссылается на сущность центрального пользователя:

@Entity
@Table(name = "person")
public class Person {

    @Id
    @Column(name = "prs_id")
    private Long id;

    @ManyToOne
    @JoinColumn(name = "prs_usr_id")
    private User user;

    ...
}

Теперь Hibernate не автоматически создает ожидаемое ограничение внешнего ключа, указывающее на central :

CONSTRAINT `...` FOREIGN KEY (`prs_usr_id`) REFERENCES central.user (`usr_id`);

Вместо этого создается локальная пользовательская таблица, а FK ссылается на локальную таблицу.

Что я делаю не так?

...