gpt4 book ai didi

JPA 一对多映射键

转载 作者:行者123 更新时间:2023-12-04 06:30:39 25 4
gpt4 key购买 nike

我有以下

@OneToMany(mappedBy="role")
@MapKey(name="role.name")
private Map<String,UserRole> userRoles = new HashMap<String,UserRole>();

我想使用 UserRole 中 Role 对象的 name 属性作为 Map 的键,我该如何实现这一点。 @MapKey(name="role.name") 不起作用。

我的 UserRole.java 有以下内容
@ManyToOne
@JoinColumn(name="roleId")
private Role role;

最佳答案

在 JPA 中,@MapKey 只能是本地字段。
您可以尝试仅使用“角色”作为键,因为它应该类似于使用角色名称。
或者,将角色名称映射到 UserRole。
您也可以将其映射为 List 或 Set 并在您的类中定义方法以通过键访问它。

如果您使用 EclipseLink,您还可以使用一个方法作为映射键,因此您可以在 UserRole 中定义一个 getRoleName() 来返回角色的名称,并将其与 @MapKey 一起使用。

关于JPA 一对多映射键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5453977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com