RFQOrderRegion.java

package com.tradecloud.domain.model.requestforquote;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.place.Region;
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 = "RFQOrderRegion")
public class RFQOrderRegion extends PersistenceBase {
    @ManyToOne
    private Region region;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY,mappedBy = "rfqOrderRegion")
    @Fetch(value = FetchMode.SELECT)
    private List<RFQOrderProduct> rfqOrderProducts =new ArrayList<>();
    private Long orderId;
    @ManyToOne
    private RFQOrder rfqOrder;

    private transient List<RFQOrderProduct> styleRfqOrderProducts =new ArrayList<>();
    private transient Integer totalStyleQuantity = 0;

    public RFQOrderRegion() {
    }

    public RFQOrderRegion(RFQOrder rfqOrder, Region region) {
        this.rfqOrder = rfqOrder;
        this.region = region;
    }

    public Region getRegion() {
        return region;
    }

    public void setRegion(Region region) {
        this.region = region;
    }

    public List<RFQOrderProduct> getRfqOrderProducts() {
        return rfqOrderProducts;
    }

    public void setRfqOrderProducts(List<RFQOrderProduct> rfqOrderProducts) {
        this.rfqOrderProducts = rfqOrderProducts;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public RFQOrder getRfqOrder() {
        return rfqOrder;
    }

    public void setRfqOrder(RFQOrder rfqOrder) {
        this.rfqOrder = rfqOrder;
    }

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

    @Override
    public int hashCode() {
        return Objects.hash(region, rfqOrder);
    }

    public List<RFQOrderProduct> getStyleRfqOrderProducts() {
        return styleRfqOrderProducts;
    }

    public void setStyleRfqOrderProducts(List<RFQOrderProduct> styleRfqOrderProducts) {
        this.styleRfqOrderProducts = styleRfqOrderProducts;
    }

    public Integer getTotalStyleQuantity() {
        return totalStyleQuantity;
    }

    public void setTotalStyleQuantity(Integer totalStyleQuantity) {
        this.totalStyleQuantity = totalStyleQuantity;
    }
}