微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非null引用null或瞬态值

如何解决非null引用null或瞬态值

所以我试图实现两个实体类间的onetoone关系。第一类是具有两个外键Buyer_id和Seller_id的客户实体类。所以我最初想要的是当用户在网站中填写初始凭证时Buyer_id和Seller_id字段应为null,并且在用户填写了买方或卖方所需的信息后,我将更新相应客户的行并添加Buyer_id和Seller_id。但是当我尝试创建客户条目时,出现此错误该Buyer_id不能为空?

这是我的客户表

@Entity
@Table(name = "Customer")
public class Customer {
    public enum Status{
        ACTIVE,IN_ACTIVE
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long id;

    @OnetoOne(fetch = FetchType.LAZY,optional = true,cascade=CascadeType.ALL)
    @JoinColumn(name = "seller_id",nullable = true,referencedColumnName = "id",updatable = true)
    @Basic(optional = true)
    private Seller seller_id;

    @OnetoOne(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
    @JoinColumn(name = "buyer_id",referencedColumnName="id",updatable = true)
    @Basic(optional = true)
    private Buyer buyer_id;

    @OnetoOne(fetch=FetchType.LAZY,optional = false,cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id",nullable = false,unique = true,referencedColumnName = "id")
    private User user_id;



    public Buyer getBuyer_id() {
        return buyer_id;
    }

    public void setBuyer_id(Buyer buyer_id) {
        this.buyer_id = buyer_id;
    }

    @Column(name = "Name")
    String name;


    @Enumerated(EnumType.STRING)
    @Column(name = "Status")
    private Status status;

    public Customer(String name,Status status){
        this.name=name;
        this.status = status;
    }

    public Customer(){

    }
    public Seller getSeller_id() {
        return seller_id;
    }

    public void setSeller_id(Seller seller_id) {
        this.seller_id = seller_id;
    }

    public User getUser_id() {
        return user_id;
    }

    public void setUser_id(User user_id) {
        this.user_id = user_id;
    }
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User getUser() {
        return user_id;
    }

    public void setUser(User user) {
        this.user_id = user;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }
}


This is my buyer table
@Entity
@Table(name="Buyer")
public class Buyer {
    @Id
    @Column(name = "id") private long id;

    @Column(name = "GSTIN")
    String GSTIN;

    @Column(name = "Legal_Document")
    @Lob
    private byte[] legalDocument;

  

    

    @OnetoOne(fetch=FetchType.LAZY,cascade = CascadeType.ALL,mappedBy = "buyer_id")
    @JsonIgnore
    private Customer customer;



    @Column(name = "Authorized_person_name")
    String authorized_person_name;

    @Column(name = "Authorized_person_email")
    String authorized_person_email;
}

这是我的卖家表

@Entity
@Table(name = "Seller")
public class Seller {
    @Id
    @Nullable
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private long id;

    @Column(name = "GSTIN")
    private String GSTIN;

    @Column(name = "GST_Document")
    @Lob
    private byte[] gst_document;

    @OnetoOne(fetch=FetchType.LAZY,mappedBy = "seller_id")
    @JsonIgnore
    private Customer customer;

//    @OnetoOne(fetch = FetchType.LAZY,//               cascade = CascadeType.ALL,//                mappedBy = "sellerId")
//    @JsonIgnore
//    private PickupAddress pickupAddress;

    @Column(name = "name")
    private String name;

    @Column(name = "email")
    private String email;


    public String getGSTIN() {
        return GSTIN;
    }

    public void setGSTIN(String GSTIN) {
        this.GSTIN = GSTIN;
    }

    public byte[] getGst_document() {
        return gst_document;
    }

    public void setGst_document(byte[] gst_document) {
        this.gst_document = gst_document;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }



}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。