package model;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
/**
* 聊天群
*
* @author wangfei
* @time 2015-04-02
*/
@Entity
@Table(name = "user_group")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Group {
public static final String GROUP_ID = "groupId";
private int groupId;
private String createrId;
private String groupName;
private List<User> memberList;
public Group() {
}
public Group(String groupName) {
setGroupName(groupName);
}
@Id
@Column(name = "group_id", columnDefinition = "int(8) COMMENT '聊天群Id'")
@GeneratedValue(strategy = GenerationType.AUTO)
public int getGroupId() {
return groupId;
}
public void setGroupId(int groupId) {
this.groupId = groupId;
}
@Column(name = "creater_id", columnDefinition = "char(20) COMMENT '微信号'")
public String getCreaterId() {
return createrId;
}
public void setCreaterId(String createrId) {
this.createrId = createrId;
}
@Column(name = "group_name", columnDefinition = "char(20) COMMENT '聊天群昵称'")
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
@ManyToMany(targetEntity = User.class, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "group_members", joinColumns = @JoinColumn(name = "group_id"), inverseJoinColumns = @JoinColumn(name = "user_id"))
public List<User> getMemberList() {
return memberList;
}
public void setMemberList(List<User> memberList) {
this.memberList = memberList;
}
public String toString() {
return "GroupId : " + this.groupId
+ "; GroupName : " + this.groupName
+ "; CreaterId : " + this.getCreaterId()
+ "; MemberList : " + this.getMemberList().toString();
}
}