ServiceFee.java
package com.tradecloud.domain.model.organisationalunit.tradefinance;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlIDREF;
import java.math.BigDecimal;
import java.util.Date;
/**
* Created by ds on 2017/06/20.
*/
@Entity
@Table(name = "servicefee", uniqueConstraints = {
@UniqueConstraint(columnNames = {"effectiveDate", "organisationalUnit_id"})})
public class ServiceFee extends PersistenceBase implements TradeFinanceRate {
private BigDecimal rate;
@Temporal(TemporalType.TIMESTAMP)
@Column(unique = true, name = "effectiveDate")
private Date effectiveDate;
@ManyToOne(fetch = FetchType.LAZY)
@ForeignKey(name = "fk_organisationalUnit")
@NotNull(message = "Parent organisational unit should not be null")
@XmlAttribute(required = true)
@XmlIDREF
private OrganisationalUnit organisationalUnit;
public ServiceFee() {
}
public ServiceFee(BigDecimal rate, Date effectiveDate) {
this.rate = rate;
this.effectiveDate = effectiveDate;
}
public Date getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(Date effectiveDate) {
this.effectiveDate = effectiveDate;
}
public BigDecimal getRate() {
return rate;
}
public void setRate(BigDecimal rate) {
this.rate = rate;
}
public OrganisationalUnit getOrganisationalUnit() {
return organisationalUnit;
}
public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
}