/* * Copyright 2012 Ixonos Plc, Finland. All rights reserved. * * This file is part of Kohti kumppanuutta. * * This file is licensed under GNU LGPL version 3. * Please see the 'license.txt' file in the root directory of the package you received. * If you did not receive a license, please contact the copyright holder * (http://www.ixonos.com/). * */ package fi.koku.services.entity.kks.impl; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; /** * Entity for entry class (single entry metadata) * * @author Ixonos / tuomape * */ @Entity @NamedQueries({ @NamedQuery(name = KksEntryClass.NAMED_QUERY_GET_ALL_ENTRY_CLASSES, query = "SELECT DISTINCT k FROM KksEntryClass k LEFT OUTER JOIN FETCH k.tags"), @NamedQuery(name = KksEntryClass.NAMED_QUERY_GET_ENTRY_CLASSES_FOR_GROUPS, query = "SELECT DISTINCT k FROM KksEntryClass k WHERE k.groupId IN (:ids)") }) @Table(name = "kks_entry_class") public class KksEntryClass implements Serializable { public static final String NAMED_QUERY_GET_ALL_ENTRY_CLASSES = "getAllEntryClasses"; public static final String NAMED_QUERY_GET_ENTRY_CLASSES_FOR_GROUPS = "getAllEntryClassesForGroups"; private static final long serialVersionUID = 4568034252182971307L; @Id @GeneratedValue private Integer id; @Column(name = "entry_class_id") private int entryClassId; @Column(name = "sort_order", nullable = false) private int sortOrder; @Column(nullable = false) private String name; @Column private String description; @Column(name = "multi_value", nullable = false) private boolean multiValue; @Column(name = "data_type", nullable = false) private String dataType; @Column(name = "value_spaces") private String valueSpaces; @Column(name = "entry_group") private Integer groupId; // @ManyToOne // @JoinColumn(name = "entry_group") // private KksGroup group; @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "kks_entry_class_tags", joinColumns = @JoinColumn(name = "entry_class_id", referencedColumnName = "entry_class_id"), inverseJoinColumns = @JoinColumn(name = "tag_id", referencedColumnName = "tag_id")) private List<KksTag> tags; public KksEntryClass() { tags = new ArrayList<KksTag>(); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public int getSortOrder() { return sortOrder; } public void setSortOrder(int sortOrder) { this.sortOrder = sortOrder; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean isMultiValue() { return multiValue; } public void setMultiValue(boolean multiValue) { this.multiValue = multiValue; } public String getDataType() { return dataType; } public void setDataType(String dataType) { this.dataType = dataType; } public String getValueSpaces() { return valueSpaces; } public void setValueSpaces(String valueSpaces) { this.valueSpaces = valueSpaces; } // public KksGroup getGroup() { // return group; // } // // public void setGroup(KksGroup croup) { // this.group = croup; // } public List<KksTag> getTags() { return tags; } public void setTags(List<KksTag> tags) { this.tags = tags; } public int getEntryClassId() { return entryClassId; } public void setEntryClassId(int entryClassId) { this.entryClassId = entryClassId; } public Integer getGroupId() { return groupId; } public void setGroupId(Integer groupId) { this.groupId = groupId; } }