У меня есть два примера, которые в первую очередь представляют собой однонаправленное отображение @OneToOne и второе двунаправленное. В однонаправленном сопоставлении таблица со стороны владельца должна содержать столбец объединения, который ссылается на идентификатор другой таблицы; то в двунаправленном оба они должны содержать столбец внешнего ключа друг для друга. Но после создания схемы базы данных с помощью стратегии автогенерации два примера оказывают одинаковое влияние на схему базы данных. Однонаправленное отображение является нормальным, но двунаправленный пример содержит только один столбец внешнего ключа, но он должен включать внешний ключ друг друга!@OneToOne однонаправленный и двунаправленный
Однонаправленного Mapping
@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.
}
Двунаправленного Mapping
@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.
}
Почему выход схемы базы данных одинаково и почему двунаправленное отображение действует как однонаправленные?
Итак, в чем их преимущество или недостаток? –
Преимущество однонаправленной связи заключается в том, что ее легче управлять, потому что вам нужно поддерживать только одну сторону. Преимущество двунаправленной ассоциации заключается в том, что вы можете перемещаться по ней в обоих направлениях (получить адрес клиента или получить клиента по адресу). –
применимо ли это к OneToMany и ManyToOne? –