RFQOrder.java

package com.tradecloud.domain.model.requestforquote;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

@Entity
@Table(name = "RFQOrder")
public class RFQOrder extends PersistenceBase {

    @ManyToOne
    private OrganisationalUnitSupplier organisationalUnitSupplier;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY,mappedBy = "rfqOrder")
    @Fetch(value = FetchMode.SELECT)
    @OrderBy("created")
    private List<RFQOrderRegion> rfqOrderRegions =new ArrayList<>();

    @ManyToOne(fetch = FetchType.LAZY)
    private RequestForQuote requestForQuote;

    public RFQOrder() {
    }

    public RFQOrder(OrganisationalUnitSupplier organisationalUnitSupplier, RequestForQuote requestForQuote) {
        this.organisationalUnitSupplier = organisationalUnitSupplier;
        this.requestForQuote=requestForQuote;
    }

    public OrganisationalUnitSupplier getOrganisationalUnitSupplier() {
        return organisationalUnitSupplier;
    }

    public void setOrganisationalUnitSupplier(OrganisationalUnitSupplier organisationalUnitSupplier) {
        this.organisationalUnitSupplier = organisationalUnitSupplier;
    }

    public List<RFQOrderRegion> getRfqOrderRegions() {
        return rfqOrderRegions;
    }

    public void setRfqOrderRegions(List<RFQOrderRegion> rfqOrderRegions) {
        this.rfqOrderRegions = rfqOrderRegions;
    }

    public RequestForQuote getRequestForQuote() {
        return requestForQuote;
    }

    public void setRequestForQuote(RequestForQuote requestForQuote) {
        this.requestForQuote = requestForQuote;
    }

    @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        RFQOrder rfqOrder = (RFQOrder) object;
        return Objects.equals(organisationalUnitSupplier, rfqOrder.organisationalUnitSupplier) && Objects.equals(requestForQuote, rfqOrder.requestForQuote);
    }

    @Override
    public int hashCode() {
        return Objects.hash(organisationalUnitSupplier, requestForQuote);
    }
}