您好我有两个表:角色和权限。角色有名字和其他东西。权限有id,idrole,字符串sname和boolean bcanmodify。 (角色和权限之间的关系多对一)
我想只有一个用于Role的Hibernatee实体类,并且有一个映射,其中键是来自reated权限的sname值,而值将是bcanmodify值。那可能吗?我应该使用哪些注释?
答案 0 :(得分:1)
以下方式适合我,我相信符合您的要求;以下代码包含在实体角色中,您无需定义实体权限。但请记住,您希望使用的列作为映射键必须在表中定义唯一约束,就像在这里您必须在权限表中具有唯一的sname值
@ElementCollection
@CollectionTable(name="permissions",joinColumns= @JoinColumn(name="role_id",referencedColumnName="role_id")})
@MapKeyColumn(name="sname")
@Column(name="bcanmodify")
private Map<String,Boolean> permissions;
答案 1 :(得分:0)
AFAIK,您可以做的最接近的是Map<String, Permission>
实体中的Role
。
@OneToMany(mappedBy = "role")
@MapKey(name = "name")
private Map<String, Permission> permissions;