Tôi có hai ví dụ đầu tiên là @OneToOne ánh xạ một chiều và hai chiều hai chiều. Trong ánh xạ một chiều, bảng bên sở hữu phải chứa cột nối tham chiếu đến id của bảng khác; sau đó trong hai chiều, cả hai phải chứa một cột khoá ngoại cho nhau. Nhưng sau khi tạo lược đồ cơ sở dữ liệu với chiến lược autogenerate, hai ví dụ có cùng tác dụng trên lược đồ cơ sở dữ liệu. Ánh xạ một chiều là bình thường nhưng ví dụ hai chiều chỉ chứa một cột khóa ngoài, nhưng nó phải liên quan đến khoá ngoại của nhau!@OneToOne một chiều và hai chiều
Unidirectional 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.
}
hai chiều 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.
}
Tại sao là sản phẩm đồ cơ sở dữ liệu giống nhau và tại sao lập bản đồ hành hai chiều như một chiều?
Vì vậy, lợi thế hoặc bất lợi của chúng là gì? –
Lợi thế của một hiệp hội một chiều là dễ quản lý hơn, bởi vì bạn chỉ phải duy trì một bên. Lợi thế của một hiệp hội hai chiều là bạn có thể điều hướng nó theo cả hai hướng (lấy địa chỉ của khách hàng hoặc nhận được khách hàng của một địa chỉ). –
điều này có áp dụng cho OneToMany và ManyToOne không? –