/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.adm.database; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Set; import javax.persistence.*; import ru.codeinside.log.Logger; @Entity @EntityListeners(Logger.class) @NamedQuery(name = "findAllServices", query = "SELECT s FROM Service s") @SequenceGenerator(name = "service_seq", sequenceName = "service_seq") public class Service implements Serializable { private static final long serialVersionUID = 222L; @Id @GeneratedValue(generator = "service_seq") private Long id; @Column(length = 1500) private String name; @Temporal(TemporalType.TIMESTAMP) private Date dateCreated = new Date(); @ManyToOne(fetch = FetchType.LAZY) private Employee creator; @OneToMany(mappedBy = "service", fetch = FetchType.LAZY) private Set<Procedure> procedures; @ElementCollection(targetClass = String.class) @CollectionTable(name = "service_declarant_type") @Column(name="declarant_type") private List<String> declarantTypes; @Column(unique = true) private Long registerCode; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDateCreated() { return dateCreated; } public void setCreator(Employee creator) { this.creator = creator; } @Override public String toString() { return getId() != null ? getId().toString() : ""; } public List<String> getDeclarantTypes() { return declarantTypes; } public void setDeclarantTypes(List<String> declarantTypes) { this.declarantTypes = declarantTypes; } public void addDeclarantType(String declarantType){ if(declarantTypes==null){ declarantTypes = new ArrayList<String>(); } declarantTypes.add(declarantType); } public Set<Procedure> getProcedures() { return procedures; } public Long getRegisterCode() { return registerCode; } public void setRegisterCode(Long registerCode) { this.registerCode = registerCode; } }