如何为对象数据类型进行POST?

时间:2019-05-17 12:02:36

标签: java json spring-boot jpa

我的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

2 个答案:

答案 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
    }