你能帮我用Hibernate来持久保存字符串的地图吗?
地图值来自客户端并且是随机的,因此我不想为地图的值存储单独的表
引起:org.hibernate.AnnotationException:找不到关联的类:java.lang.String
@Entity public class UserConfig { @Id @SequenceGenerator(sequenceName = "CONFIG_SEQ", name = "ConfigSeq", allocationSize = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ConfigSeq") private Long id; @ElementCollection(targetClass = String.class) @CollectionTable(name = "MAP") @MapKey(name="key") @Column(name="value") private Mapmap;
你能否解释如何坚持Map
,如果MyEnum
是一个未映射的类?
根据规范,您应该像这样注释地图:
@ElementCollection(targetClass = String.class) @CollectionTable(name = "MAP") @MapKeyColumn(name="key") @Column(name="value") private Mapmap;
所以@MapKeyColumn
,而不是@MapKey
.
这是您定义为地图时应该注释的方式:
private Mapmap; // (i.e. Map )
@MapKey
将地图定义为:时,可以使用注释:
private Mapmap; // (i.e. Map )
最后,@MapKeyEnumerated
当您有地图定义广告时使用注释:
private Mapmap; // (i.e. Map )