我正在尝试使用复合键映射实体,但是我需要复合键作为其他实体和String的id,这是我的课程,但我相信可能有问题。
@Entity
public class Permission implements Serializable {
@Id
@Column
private String permission;
@Id
@ManyToOne(optional = false)
@JoinColumn(name = "role_id", foreignKey = @ForeignKey(name = "fk_permission_role_id"))
private Role role;
.....
答案 0 :(得分:1)
假设角色中的ID是一个简单的整数,您可以使用类似的东西:
public class PermissionPK implements Serializable {
private String permission;
private Integer role;
}
然后将@IdClass注释添加到您的实体:
@IdClass(PermissionPK.class)
@Entity
public class Permission implements Serializable {
@Id
private String permission;
@Id
@ManyToOne(optional = false)
@JoinColumn(name = "role_id")
private Role role;
}
这将允许您在查找操作中使用EmployeePK实例,但其他任何内容都不需要它。