我的JSON数据如下:
{
"id": '123',
"name": {
"fname": "arav"
}
}
我想将名称另存为json对象。 如何在JPA中进行操作? 我正在Spring-boot应用程序中尝试。
我正在使用apache-derby db(内存中的db)
@Entity
public class MyName{
@Id
private String id;
@Lob
private Object name;
getter... setter... methods
}
{
"timestamp": "2019-05-17T11:34:45.919+0000",
"path": "/name/test",
"status": 500,
"error": "Internal Server Error",
"message": "java.base/java.util.LinkedHashMap cannot be cast to java.sql/java.sql.Blob",
"trace": "java.lang.ClassCastException: java.base/java.util.LinkedHashMap cannot be cast to java.sql/java.sql.Blob\r\n\tat org.hibernate.type.BlobType.getReplacement(BlobType.java:20)\r\n\tat org.hibernate.type.AbstractStandardBasicType
答案 0 :(得分:0)
好吧,除非您使用某些特殊的扩展名或类型(例如,例如postgres中的jsonb或json类型),并且由于对象的json表示形式只是一个字符串表示形式,您应该将名称LinkedHashMap实例序列化为json字符串使用诸如jackson之类的json库并将值存储在varchar数据类型列中。
答案 1 :(得分:-1)
您需要再添加一个注释
@Entity
public class MyName{
@Id
private String id;
@ElementCollection
@Lob
private Object name;
getter... setter... methods
}