PaymentBasisKeyValue.java

package com.tradecloud.domain.model.organisationalunit;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.payment.ActualPaymentBasis;
import com.tradecloud.domain.model.payment.EstimatedPaymentBasis;
import com.tradecloud.domain.model.payment.PaymentBasis;

import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import java.util.Objects;

@Entity(name = "PaymentBasisKeyValue")
@Table(name = "PaymentBasisKeyValue")
public class PaymentBasisKeyValue extends PersistenceBase {
    //key
    @NotNull(message = "actualPaymentBasis is required")
    @ManyToOne
    private ActualPaymentBasis actualPaymentBasis;
    //value
    @ManyToOne
    private EstimatedPaymentBasis estPaymentBasis;

    public PaymentBasisKeyValue() {
    }

    public PaymentBasisKeyValue(ActualPaymentBasis actualPaymentBasis, EstimatedPaymentBasis estPaymentBasis) {
        this.actualPaymentBasis = actualPaymentBasis;
        this.estPaymentBasis = estPaymentBasis;
    }

    public PaymentBasis getActualPaymentBasis() {
        return actualPaymentBasis;
    }

    public void setActualPaymentBasis(ActualPaymentBasis actualPaymentBasis) {
        this.actualPaymentBasis = actualPaymentBasis;
    }

    public EstimatedPaymentBasis getEstPaymentBasis() {
        return estPaymentBasis;
    }

    public void setEstPaymentBasis(EstimatedPaymentBasis estPaymentBasis) {
        this.estPaymentBasis = estPaymentBasis;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        PaymentBasisKeyValue that = (PaymentBasisKeyValue) o;
        return Objects.equals(actualPaymentBasis, that.actualPaymentBasis);
    }

    @Override
    public int hashCode() {
        return Objects.hash(actualPaymentBasis);
    }
}