Depot.java

package com.tradecloud.domain.place;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tradecloud.common.base.StaticDataEntityBase;
import com.tradecloud.domain.common.IntegratedStaticDataEntityBase;

import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@Entity
@Table(name = "depot")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Depot")
//@Cacheable(value = "depot")
public class Depot extends IntegratedStaticDataEntityBase {

    private static final long serialVersionUID = 1L;

    @Enumerated(EnumType.STRING)
    @XmlElement(name = "DepotType")
    @JsonIgnore
    DepotType type;

    @ManyToOne(fetch = FetchType.LAZY)
    @JsonIgnore
    private City city;

    // For JPA only.
    public Depot() {
    }

    public Depot(String code) {
        super(code);
    }

    public Depot(String code, String name) {
        super(code, name);
    }

    public DepotType getType() {
        return type;
    }

    public void setType(DepotType typeParam) {
        this.type = typeParam;
    }

    @Override
    public int compareTo(StaticDataEntityBase o) {
        if (getName() != null && o.getName() != null) {
            return getName().compareToIgnoreCase(o.getName());
        }
        return 0;
    }

    public City getCity() {
        return city;
    }

    public void setCity(City city) {
        this.city = city;
    }
}