Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.hengyi.japp.execution.domain; import com.google.common.collect.Lists; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.validation.constraints.Size; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.apache.commons.lang3.StringUtils; import org.hibernate.validator.constraints.NotBlank; /** * * @author jzb */ @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) @Entity @Table(name = "T_OPERATOR") @NamedQueries({ @NamedQuery(name = "Operator.find", query = "SELECT o FROM Operator o"), @NamedQuery(name = "Operator.count", query = "SELECT COUNT(o) FROM Operator o"), @NamedQuery(name = "Operator.queryByName", query = "SELECT o FROM Operator o WHERE o.name LIKE :name") }) public class Operator extends AbstractEntity { private static final long serialVersionUID = 1L; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "T_CUSTOMER_T_OPERATOR") private List<Customer> customers; @NotBlank @Size(max = 50) @Column(length = 50) private String name; private String note; @XmlTransient @Column(length = 20) private String theme; private boolean deleteFlag = false; // TODO OperatorTag @XmlTransient @ManyToMany(mappedBy = "operators") private List<OperatorTag> operatorTags; public void setName(String name) { this.name = StringUtils.trim(name); } public String getNote() { return note; } public void setNote(String note) { this.note = note; } public String getName() { return name; } public String getTheme() { return theme; } public void setTheme(String theme) { this.theme = theme; } public List<OperatorTag> getOperatorTags() { return operatorTags; } public void setOperatorTags(List<OperatorTag> operatorTags) { this.operatorTags = operatorTags; } public boolean isDeleteFlag() { return deleteFlag; } public void setDeleteFlag(boolean deleteFlag) { this.deleteFlag = deleteFlag; } public List<Customer> getCustomers() { return customers; } public void setCustomers(List<Customer> customers) { this.customers = customers; } public void add(Customer customer) { if (customers == null) { customers = Lists.newArrayList(customer); } else if (!customers.contains(customer)) { customers.add(customer); } } public void remove(Customer customer) { if (customer == null || customers == null || customers.isEmpty()) { return; } customers.remove(customer); } @Override public String toString() { StringBuilder sb = new StringBuilder(getName()); if (!StringUtils.isBlank(getNote())) { sb.append("[").append(getNote()).append("]"); } return sb.toString(); } }