gpt4 book ai didi

java - JPA @ElementCollection 注释是否始终产生一对多关系?

转载 作者:行者123 更新时间:2023-12-01 15:43:32 26 4
gpt4 key购买 nike

对于这个问题,请考虑以下示例:

@Entity
public class File {
public static enum Permission { READABLE, WRITEABLE, EXECUTABLE }

@ElementCollection
@Enumerated(EnumType.ORDINAL)
Set<Permission> permissions;

// Omitted
}

假设枚举值以序数形式存储,JPA 是否总是为此集合创建一个额外的表?我可以更改它以使其不是一对多关系,即使用列而不是额外的表吗?

谢谢。

最佳答案

  1. “一对多”是一种实体关联。这是值的集合,因此它不能是一对多。
  2. 从物理上来说,在单行的单个字段中存储多个值是不可能的,所以不,您不能让它这样做。
  3. 本质上,您要求的是一个基本属性,例如私有(private)字符串权限;。这将在同一个表中使用单个列。
  4. 如果您想将多个值打包为一个值,例如在 Hibernate 保存时手动将所有权限合并为一个逗号分隔的字符串,您需要编写 custom UserType来做到这一点。

关于java - JPA @ElementCollection 注释是否始终产生一对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592242/

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