我有一个关于 Spring 和 Hibernate 的问题,也就是说,例如,如果我想同时保留两个实体,例如 Customer 和 Address,那么当客户注册时,他们的地址也会自动保存。
地址是从我的应用程序外部的地址 api 检索的,我希望在客户端注册时将该信息保存在地址实体中。
我的实体如下:
客户:
public class Customer{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank(message = "no puede estar vació")
private String nombre;
@NotBlank(message = "no puede estar vació")
@Column(name = "apellido_paterno")
private String apellidoPaterno;
@NotBlank(message = "no puede estar vació")
@Column(name = "apellido_materno")
private String apellidoMaterno;
@NotBlank(message = "no puede estar vació")
private String telefono;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "address_id")
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})
private Address address;
}
地址:
public class Address{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank(message = "no puede estar vació")
private String calle;
@NotBlank(message = "no puede estar vació")
private String colonia;
@NotNull(message = "no puede estar vació")
@Column(name = "no_exterior")
private Integer noExterior;
@Column(name = "no_interior")
private Integer noInterior;
@NotBlank(message = "no puede estar vació")
private String municipio;
@NotNull(message = "no puede estar vació")
private Integer cp;
@NotBlank(message = "no puede estar vació")
private String estado;
@OneToMany(mappedBy = "adress")
private List<Customer> customer;
}
既然我有了,地址必须已经创建,以便它可以与客户端关联,但是,我希望当客户端输入他们的数据时,包括地址,它们同时被创建和关联维护。
答案 0 :(得分:0)
当您持久化实体“客户”时,您应该创建一个对象 Customer 和一个对象 Address,并将 Address 对象设置为 Customer,并将对象 Customer 对象添加到 Address 对象中的 Customer 列表。我的意思是,您应该在业务逻辑层或服务中执行此操作。