联合主键问题

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;

 }

}

 

你可能感兴趣的:(联合主键)