gpt4 book ai didi

java - 如何序列化一组枚举?

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:52 26 4
gpt4 key购买 nike

是否可以在没有自定义属性转换器的情况下序列化一组枚举?

@Entity
public class SomeEntity {

@Id
@GeneratedValue
private Integer id;

private Set<DayOfWeek> days;

}

日期集必须与 SomeEntity 位于同一个表中。

我正在使用 Spring Data JPA 1.9 和 Hibernate 4.3.1。谢谢。

最佳答案

Hibernate 存储声明实现可序列化类型的所有属性。

但是 days 属性的类型是 Set,它扩展Serialized。要将集合存储为序列化值,您需要声明一个实现 Serialized 的集合类 - 就像大多数人所做的那样。例如HashSet:

@Entity
public class SomeEntity {

private HashSet<DayOfWeek> days;

}

您不需要任何进一步的注释。这适用于 Enum 和所有其他可序列化元素。

但是对于一组枚举,存在另一种选择:使用 EnumSet,它将值存储到整数列中(每个枚举值恰好是一位)。在这里查看我的答案:JPA map collection of Enums

关于java - 如何序列化一组枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968448/

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