Отображение Hibernate один на один создает внешний ключ - PullRequest
0 голосов
/ 19 февраля 2019

Справочная информация: я загружаю экземпляр mysql для запуска тестов БД, создаю схему, используя Hibernate (spring-data-jpa), и запускаю некоторые тесты для БД.Все мои сущности создаются с помощью аннотаций и загружаются в контексте весны.

Таблицы: у меня есть 2 таблицы:

MainTable:
   - id (PK)
   - customerId
   ...

ThirdParty:
   - id (PK)
   - customerId (FK: MainTable.customerId)
   - serviceId

Это сопоставление один к одному, так как я не делаюхочу добавить serviceId в мою MainTable.

Мои объекты настроены следующим образом:

@Table
@Entity
public class MainTable {
    @Id
    @Column
    private String id;

    @Column(name = "CUSTOMER_ID")
    private String customerId;

    @OneToOne
    @JoinColumn(name = "CUSTOMER_ID", referencedColumnName = "CUSTOMER_ID")
    private ThirdParty thirdParty;
}

@Table
@Entity
public class ThirdParty {
    @Id
    @Column
    private String id;

    @Column(name = "CUSTOMER_ID")
    private String customerId;

    @Column(name = "SERVICE_ID")
    private String serviceId;
}

Я хочу, чтобы MainTable.thirdParty обнулялся.Всякий раз, когда Hibernate создает схему, он создает отношение FK из MainTable.CUSTOMER_ID для ThirdParty.CUSTOMER_ID, что означает, что у меня возникает проблема с целостностью ссылки при попытке сохранить MainTable с нулевым ThirdParty.

Я просто очень хочу иметь возможность хранить экземпляр MainTable, который может быть с данными ThirdParty или без них.

Я не хочу, чтобы Hibernate создавал MainTable с отношением FK на ThirdParty.customerId

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