1 需要将联合主键定义在一个实体类中,用@Embeddable注解标志。
@SuppressWarnings("serial")
@Embeddable
public class TBLUserRolePK implements Serializable {
/** 用户id */
private String userId;
/** 角色id */
private String roleId;
/**
* 构造函数
*/
public TBLUserRolePK() {
super();
}
/**
* 构造函数
* @param userId 用户id
* @param roleId 角色id
*/
public TBLUserRolePK(String userId, String roleId) {
this.userId = userId;
this.roleId = roleId;
}
/**
* 取得用户id
* @return
*/
@Column(name="userId",length=32)
public String getUserId() {
return userId;
}
/**
* 设置用户id
* @param userId
*/
public void setUserId(String userId) {
this.userId = userId;
}
/**
* 取得角色id
* @return
*/
@Column(name="roleId",length=32)
public String getRoleId() {
return roleId;
}
/**
* 设置角色id
* @param roleId
*/
public void setRoleId(String roleId) {
this.roleId = roleId;
}
}
2 再定义一个实体类,引入上面定义的类,该属性用 @EmbeddedId 注解注释。到这里联合主键已经创建完成。
@Entity
@Table(name = "TBL_USERROLE")
public class TBLUserRole implements Serializable{
/** 用户角色实体*/
private TBLUserRolePK id;
/**
* 构造函数
* @param id 用户角色实体
*/
public TBLUserRole(TBLUserRolePK id) {
this.id = id;
}
/**
* 构造函数
*/
public TBLUserRole() {
super();
}
/**
* 取得联合主键
* @return
*/
@EmbeddedId
public TBLUserRolePK getId() {
return id;
}
/**
* 设置联合主键
* @param id
*/
public void setId(TBLUserRolePK id) {
this.id = id;
}
}