gpt4 book ai didi

java - 将同一数据库中的多行映射到单个实体

转载 作者:行者123 更新时间:2023-11-30 09:31:43 24 4
gpt4 key购买 nike

我正在寻找将一个表中的多行映射到单个实体的最佳方法。我的数据库表如下所示:

principal_id    permission    target
12312313 PERM1 1000
12312313 PERM2 1000
12312313 PERM2 1002

理想情况下,我想将此表的内容作为字段映射到我的 Principal @Entity 中,如下所示:

@Entity
...
public class Principal {
@Id
private long principalId;

...

private Map<String, List<Long>> permissionMap;

}

最好的方法是什么?

最佳答案

我不知道有什么方法可以完全按照您的意愿行事。我能得到的最接近的是:

@Embeddable
public class Permission {
private String permission;
private int target;
}

@ElementCollection
@CollectionTable(name="foo", joinColumns = @JoinColumn(name = "principal_id"))
private Set<Permission> permissions;

如果每个目标只有一个权限,那么您可以使用 map :

@ElementCollection
@CollectionTable(name="foo", joinColumns = @JoinColumn(name = "principal_id"))
@MapKeyColumn(name="permission")
@Column(name="target")
private Map<String, Integer> permissions;

遗憾的是,我认为没有办法对包含集合的 map 执行此操作。

关于java - 将同一数据库中的多行映射到单个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809307/

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