将地图<Enum,Enum>存储为字符串

use*_*877 9 java postgresql enums hibernate jpa-2.0

我需要帮助在JPA2中存储地图,其中键和值都是枚举(Map<Enum, Enum>).使用Hibernate作为我的JPA提供程序,它将枚举存储为blob,但我需要将数据存储为字符串.我尝试了以下注释来解决此问题:

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyEnumerated(value = EnumType.STRING)
public Map<Enum, Enum> getElementsMap() {
    return elementsMap;
}
Run Code Online (Sandbox Code Playgroud)

但是数据仍然作为blob存储在DB中.有人解决了这个问题吗?

the*_*der 1

几乎每个 Java 对象都有一个toString() method如果您想在数据库中表示您的 Map,那么我建议这是您的选择。

但是我不得不问你确定这是你想要存储的 MAP 而不是键或值的元素吗?