У меня есть два примера: первый - однонаправленное отображение @OneToOne, а второй - двунаправленный. В однонаправленном отображении таблица на стороне владельца должна содержать столбец соединения, который ссылается на идентификатор другой таблицы; тогда в двунаправленном письме они должны содержать столбец внешнего ключа друг для друга. Но после генерации схемы базы данных с помощью стратегии автогенерации два примера одинаково влияют на схему базы данных. Однонаправленное отображение является нормальным, но в двунаправленном примере содержится только один столбец внешнего ключа, но он должен включать внешний ключ друг друга!
Однонаправленное отображение
@Entity
public class Customer43 {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
@OneToOne
@JoinColumn(name = "address_fk")
private Address43 address;
// Getters, Setters and Constructors.
}
@Entity
public class Address43 {
@Id
@GeneratedValue
private Long id;
private String street1;
private String street2;
private String city;
private String state;
private String zipcode;
private String country;
// Getters, Setters and Constructors.
}
Двунаправленное картографирование
@Entity
public class Customer44 {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
@OneToOne
@JoinColumn(name = "address_fk")
private Address43 address;
// Getters, Setters and Constructors.
}
@Entity
public class Address44 {
@Id
@GeneratedValue
private Long id;
private String street1;
private String street2;
private String city;
private String state;
private String zipcode;
private String country;
@OneToOne(mappedBy = "address")
private Customer44 customer;
// Getters, Setters and Constructors.
}
Почему выходные данные схемы базы данных одинаковы и почему двунаправленное отображение действует как однонаправленное?