package org.oregami.entities; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.hibernate.annotations.NamedQueries; import org.hibernate.annotations.NamedQuery; import org.hibernate.envers.Audited; import org.joda.time.LocalDateTime; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.OneToMany; import java.util.HashSet; import java.util.Set; @Entity @TopLevelEntity(discriminator = TopLevelEntity.Discriminator.PUBLICATIONFRANCHISE) @Audited @NamedQueries({ @NamedQuery(name="PublicationFranchise.GetAll", query = "from PublicationFranchise t") }) @JsonIgnoreProperties(ignoreUnknown = true) public class PublicationFranchise extends BaseEntityUUID { private static final long serialVersionUID = -4693647736354542489L; private String name; @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch=FetchType.EAGER) private final Set<Publication> publicationList = new HashSet<Publication>(); public PublicationFranchise() { } public PublicationFranchise(String name) { this.setName(name); } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set<Publication> getPublicationList() { return publicationList; } @JsonSerialize(using = CustomLocalDateTimeSerializer.class) public LocalDateTime getChangeTimeGui() { return getChangeTime(); } }