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; } }