package com.norteksoft.acs.entity.sale; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import org.apache.commons.lang.builder.ToStringBuilder; import com.norteksoft.acs.entity.IdEntity; import com.norteksoft.acs.entity.authorization.Function; /** * 销售包实体 */ @Entity @Table(name = "ACS_SALES_MODULES") public class SalesModule extends IdEntity { private static final long serialVersionUID = 1L; //销售包名称 private String moduleName; //所在产品 private Set<Product> products = null; //所属系统 private Long systemId; //设置产品和销售的关系 private Set<Function> functions = new HashSet<Function>(0); public String getModuleName() { return moduleName; } public void setModuleName(String moduleName) { this.moduleName = moduleName; } @ManyToMany(mappedBy="salesModuels") public Set<Product> getProducts() { return products; } public void setProducts(Set<Product> products) { this.products = products; } @ManyToMany(targetEntity=Function.class, cascade = { CascadeType.PERSIST }) @JoinTable(name = "ACS_FUNCS_SALES", joinColumns = { @JoinColumn(name = "FK_SALESMODUEL_ID") }, inverseJoinColumns = { @JoinColumn(name = "FK_FUNCTION_ID") }) @OrderBy("id") public Set<Function> getFunctions() { return functions; } public void setFunctions(Set<Function> functions) { this.functions = functions; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); } @Column(name="FK_BIZSYSTEM_ID") public Long getSystemId() { return systemId; } public void setSystemId(Long systemId) { this.systemId = systemId; } }