У меня есть два примера, первый - это однонаправленное отображение @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.
}
Почему вывод схемы базы данных одинаков и почему двунаправленное отображение действует как однонаправленное?