Java 获取元素时HashMap为Null
我在DB colomun Hashmap中使用Hstore类型:Java 获取元素时HashMap为Null,java,spring,hibernate,jpa,spring-boot,Java,Spring,Hibernate,Jpa,Spring Boot,我在DB colomun Hashmap中使用Hstore类型: @TypeDef(name = "hstore", typeClass = HstoreUserType.class) @Type(type="hstore") @Column(columnDefinition = "hstore") private HashMap<String,String> extraInfo; @TypeDef(name=“hstore”,typeClass=HstoreUserType.c
@TypeDef(name = "hstore", typeClass = HstoreUserType.class)
@Type(type="hstore")
@Column(columnDefinition = "hstore")
private HashMap<String,String> extraInfo;
@TypeDef(name=“hstore”,typeClass=HstoreUserType.class)
@类型(Type=“hstore”)
@列(columnDefinition=“hstore”)
私有HashMapExtraInfo;
问题是,当我在Hashmap为null的表中获得一个元素时,我会收到一条消息:
java.lang.NullPointerException: null
at java.util.StringTokenizer.<init>(Unknown Source) ~[na:1.8.0_121]
at java.util.StringTokenizer.<init>(Unknown Source) ~[na:1.8.0_121]
at com.HstoreUserType.convertToEntityAttribute(HstoreUserType.java:138) ~[classes/:na]
at com.HstoreUserType.nullSafeGet(HstoreUserType.java:71) ~[classes/:na]
at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:111) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:85) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
java.lang.NullPointerException:null
位于java.util.StringTokenizer。(未知源)~[na:1.8.0_121]
位于java.util.StringTokenizer。(未知源)~[na:1.8.0_121]
在com.HstoreUserType.convertToEntityAttribute(HstoreUserType.java:138)~[classes/:na]
在com.HstoreUserType.nullSafeGet(HstoreUserType.java:71)~[classes/:na]
在org.hibernate.type.CustomType.nullSafeGet(CustomType.java:111)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
在org.hibernate.type.AbstractType.hydrate(AbstractType.java:85)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]
我想使用此Column optionnal,当hashmap为空时,不要转到类型定义中的HstoreUserType.class。是否尝试将新的空映射分配给实体中的此字段?如果没有数据,我想不分配映射,这是可能的?在Jpa中?你的意思是,在Jpa中是否可以将映射字段持久化为单个列?是的,使用
AttributeConverter
,而不使用某些JPA提供商供应商扩展