两个类用户信息和用户Tag类型 多对多的关系
1.用户信息类
package com.yunmiao.bean.player;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunmiao.bean.base.BaseModel;
/**
* @ClassName: PlayerBindInfo
* @Description: 玩家绑定的个人信息
* @author Jay He
* @date 2015年8月31日 上午11:13:35
*
*/
@Entity
@Table(name="player_bind_info", catalog="vgame")
public class PlayerBindInfo extends BaseModel{
private static final long serialVersionUID = 9138118201233047164L;
// 跟服务器关联的用户名 规则: agentId-serverId-用户id
private String uname;
private Set<PlayerTagType> tags = new HashSet<>();
// 用户真实姓名
private String name;
//性别
private short sex;
//年龄
private Integer age;
// 生日
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") //取日期时使用
@DateTimeFormat(pattern = "yyyy-MM-dd")//存日期时使用
private Date birthday;
// 电话
private String phone;
// Email
private String email;
// QQ
private String qq;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
@ManyToMany(cascade = { CascadeType.PERSIST }, targetEntity = PlayerTagType.class, fetch = FetchType.EAGER)
@JoinTable(name = "palyer_info_tag", joinColumns = { @JoinColumn(name = "player_info_id", updatable = true) }, inverseJoinColumns = { @JoinColumn(name = "tag_id", updatable = true) })
@Cascade(value = { org.hibernate.annotations.CascadeType.SAVE_UPDATE })
public Set<PlayerTagType> getTags() {
return tags;
}
public void setTags(Set<PlayerTagType> tags) {
this.tags = tags;
}
public String getName() {
return name;
}
public void setName(String