Tengo dos ejemplos que primero es el mapeo unidireccional @OneToOne y el segundo bidireccional. En el mapeo unidireccional, la tabla del lado propietario debe contener una columna de unión que haga referencia a la identificación de la otra tabla; luego, en bidireccional, ambos deben contener una columna de clave externa el uno para el otro. Pero después de generar el esquema de la base de datos con la estrategia de autogeneración, dos ejemplos tienen el mismo efecto en el esquema de la base de datos. El mapeo unidireccional es normal, pero el ejemplo bidireccional solo contiene una columna de clave externa, ¡pero debe implicar la clave externa de cada uno!@OneToOne unidireccional y bidireccional
Mapeo unidireccional
@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.
}
bidireccional Mapeo
@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.
}
¿Por qué es la salida del esquema de base de la misma y por qué actúa el mapeo bidireccional como unidireccional?
Entonces, ¿cuál es la ventaja o desventaja de ellos? –
La ventaja de una asociación unidireccional es que es más fácil de administrar, ya que solo debe mantener un lado. La ventaja de una asociación bidireccional es que puede navegar en ambas direcciones (obtener la dirección de un cliente u obtener una dirección de cliente). –
¿esto se aplica a OneToMany y ManyToOne? –