不幸的是只有两个EnumType STRING和ORDINAL。使用时ORDINAL,在大型项目中存在更改或删除值的危险,因此一切都会中断。我想要第三种类型NUMBER,我们将在其中创建Enums 并传递应该用于数据库中记录值的数字。例如
public enum AnyType {
TREE(0), // ну или TREE(0, значения которые нужны для конструктора
CAR(1);
private final int number;
private final int age;
AnyType(int number, int age) {
this.number = number;
this.age = age;
}
并JPA用作getNumber将用作的值,ORDINAL但在更改时可能会破坏的可能性较小Enum。在获取和写入数据时如何实现或如何使用它@Enumerated(EnumType.STRING)来提高性能?
javax.persistence.AttributeConverter为 type创建您自己的实现AnyType。它必须
AnyType使用 中的属性与数字相互number转换AnyType。然后将此转换器分配给相应的字段或全局分配@Converter(autoApply = true)。或多或少是这样的?
然后
AnyType.TREE.getAge()- 将保证与您的序号匹配,同时不会返回TREE到数据库。