Это ситуация, с которой я имею дело:
У меня есть три типа вопроса:
AccountTypeA
AccountTypeB
AccountInformation
AccountTypeA и AccountTypeB должны иметь объект AccountInformation.
В базе данных AccountInformation есть столбец, в котором указывается тип учетной записи, о которой идет речь:
@Column(unique = false, nullable = true)
private String accountType;
Я пытаюсь настроить сопоставления один к одному и не знаю, как справиться с этим делом. В каждом AccountTypeX у меня есть такая настройка сопоставления:
@JsonIgnore
@OneToOne(mappedBy = "accountTypeX")
private AccountInformation accountInformation;
Однако в объекте AccountInformation я не уверен, что лучший способ настроить сопоставление. Вот что у меня сейчас:
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "accountInformationId", referencedColumnName = "accountInformationId")
private AccountTypeA accountTypeA;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "accountInformationId", referencedColumnName = "accountInformationId")
private AccountTypeB accountTypeB
Это лучший способ справиться с этим, и просто иметь дело с одной из переменных в AccountInformation быть нулевым? Или есть лучший способ?