package com.exteso.lab.pf.domain; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.joda.deser.LocalDateDeserializer; import com.exteso.lab.pf.domain.util.CustomLocalDateSerializer; import lombok.Data; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import org.hibernate.annotations.Type; import org.joda.time.LocalDate; import javax.persistence.*; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; import java.util.List; /** * A ParkPlaceGroup. */ @Entity @Table(name = "T_PARKPLACEGROUP") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @Data public class ParkPlaceGroup implements Serializable { @Id @GeneratedValue(strategy = GenerationType.TABLE) private long id; @Size(min = 1, max = 1024) private String name; @NotNull private ValidityInterval validityInterval; @NotNull private Geolocation geolocation; @OneToMany(fetch = FetchType.EAGER,orphanRemoval=true) @JoinColumn(name="parkPlaceGroupId") private List<ParkPlace> parkPlaces; private String administrator; @Override public String toString() { return "ParkPlaceGroup: "+name; } }