CostableCostDefinition.java
package com.tradecloud.domain.costing;
import com.tradecloud.domain.model.ordermanagement.Consignment;
import com.tradecloud.domain.shipment.Shipment;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import java.util.Date;
@Entity
@Table(name = "costablecostdefinition")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "CostableCostDefinition")
@SuperBuilder
@NoArgsConstructor
public class CostableCostDefinition extends CostDefinition {
@OneToOne
@ForeignKey(name = "fk_consignment")
@XmlTransient
private Consignment consignment;
@OneToOne(fetch = FetchType.LAZY)
@ForeignKey(name = "fk_shipment")
@XmlTransient
private Shipment shipment;
private Date lastUpdateTime;
public CostableCostDefinition(CostDefinition costDefinition) {
this.setCostingContextType(costDefinition.getCostingContextType());
this.setIncoterm(costDefinition.getIncoterm());
this.setCountryGroup(costDefinition.getCountryGroup());
this.setOrganisationalUnit(costDefinition.getOrganisationalUnit());
this.setShippingMode(costDefinition.getShippingMode());
this.setMultiModalShippingMode(costDefinition.getMultiModalShippingMode());
this.setCountryGroup(costDefinition.getCountryGroup());
}
public Consignment getConsignment() {
return consignment;
}
public void setConsignment(Consignment consignment) {
this.consignment = consignment;
}
public Shipment getShipment() {
return shipment;
}
public void setShipment(Shipment shipment) {
this.shipment = shipment;
}
public Date getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
}