package com.tencent.model; import java.sql.Blob; import java.sql.Timestamp; import java.util.HashSet; import java.util.Set; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OneToOne; import javax.persistence.Table; @Entity @Table(name = "team") public class Team extends BaseBean { /** * */ private static final long serialVersionUID = 5432753194791534255L; private String name; private int type; private String description; private User master; private Timestamp createDate; private Blob logo; private int level; private Set<User> members = new HashSet<User>(); private Project project; private Set<Task> tasks = new HashSet<Task>(); private Set<Activity> activities = new HashSet<Activity>(); private Set<Message> messages = new HashSet<Message>(); public Team() { super(); } public Team(String name, int type, String description, Blob logo, int level) { super(); this.name = name; this.type = type; this.description = description; this.logo = logo; this.level = level; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @OneToOne @JoinColumn(name = "id_master") public User getMaster() { return master; } public void setMaster(User master) { this.master = master; } @Column(name = "create_date") public Timestamp getCreateDate() { return createDate; } public void setCreateDate(Timestamp createDate) { this.createDate = createDate; } @Basic(fetch = FetchType.LAZY) public Blob getLogo() { return logo; } public void setLogo(Blob logo) { this.logo = logo; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } @ManyToMany(cascade = { CascadeType.ALL }) @JoinTable(name = "team_user", joinColumns = { @JoinColumn(name = "id_user", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "id_team", referencedColumnName = "id") }) public Set<User> getMembers() { return members; } public void setMembers(Set<User> members) { this.members = members; } @OneToOne(mappedBy = "team") public Project getProject() { return project; } public void setProject(Project project) { this.project = project; } @ManyToMany(mappedBy = "acceptedTeams") public Set<Task> getTasks() { return tasks; } public void setTasks(Set<Task> tasks) { this.tasks = tasks; } @ManyToMany(mappedBy = "teams") public Set<Activity> getActivities() { return activities; } public void setActivities(Set<Activity> activities) { this.activities = activities; } @ManyToMany(mappedBy = "teams") public Set<Message> getMessages() { return messages; } public void setMessages(Set<Message> messages) { this.messages = messages; } }