gpt4 book ai didi

Java enum int 值只能用 JPA 顺序存储?

转载 作者:行者123 更新时间:2023-12-01 13:15:17 25 4
gpt4 key购买 nike

我有一个简单的枚举,如下所示:

public enum Tax {
NONE(10), SALES(20), IMPORT(30);

private final int value;
private Tax(int value) {
this.value = value;
}

public int getValue() {
return value;
}
}


@Entity
public Person {

.........

private TAX tax = TAX.NONE;
public TAX getTax() {
return tax;
}

public void setTax(Tax tax) {
this.tax = tax;
}

.............
}

当通过JPA将Person对象保存到数据库中时,该对象的税务字段在数据库中保存的值为0,值为TAX.NONE。

为什么数据库中不保存10个?如何让JPA通过JPA在数据库中为TAX.NONE保存10?

谢谢!

最佳答案

JPA 将枚举值的标识存储在数据库中,可以是其索引(序数)或其名称(字符串)。没有内置方法可以从枚举上的字段检索正确的枚举实例,并且多个实例可能具有相同的字段值。如果您确实想在数据库中存储辅助字段值,您可以为持久性提供程序编写自己的转换器。

关于Java enum int 值只能用 JPA 顺序存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22523681/

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