我在数据库String
列中有值
0101
0111
1110
我想在我的实体中创建枚举并添加值。
public enum MyEnum{
NEW("0101","created new"),
SUCCESS("0111", "created success),
ERROR("1110", "created with error");
}
我希望通过MyEnum的第一个参数从DB中映射值,并在我的代码中获取第二个参数。像这样:
hz.getMyEnum().value() // I need return created new or created success
答案 0 :(得分:0)
不幸的是,jpa目前(直到2.1)不支持映射到枚举范围的变量
你可以:
1-将值存储为0101,0111,1110
而不是@Converter <Enum,String>
2-保持原样
3-(灵感来自Kovacs答案)你可以创建一个CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_HCD_OMAP=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_ROOT_NFS=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
CONFIG_USB=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
并插入对应于枚举的字符串变量名,反之亦然......唯一要考虑的是这个转换器将紧密耦合到你的枚举
答案 1 :(得分:0)
我知道问题是关于JPA的 - 另一个答案是正确的,JPA 2.1不支持这种映射......但是jOOQ通过org.jooq.impl.EnumConverter
支持它没有问题,请参阅{{3} }