冬眠和春天的坚持

时间:2021-02-22 21:51:20

标签: spring spring-boot hibernate jpa

我有一个关于 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;
}

既然我有了,地址必须已经创建,以便它可以与客户端关联,但是,我希望当客户端输入他们的数据时,包括地址,它们同时被创建和关联维护。

1 个答案:

答案 0 :(得分:0)

当您持久化实体“客户”时,您应该创建一个对象 Customer 和一个对象 Address,并将 Address 对象设置为 Customer,并将对象 Customer 对象添加到 Address 对象中的 Customer 列表。我的意思是,您应该在业务逻辑层或服务中执行此操作。

相关问题