有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何处理对象数据类型的POST?

我有如下JSON数据:

{
 "id": '123',
 "name": {
       "fname": "arav"
      }
}

我想将名称另存为json对象。 我在JPA怎么办? 我正在试用Spring启动应用程序

我正在使用ApacheDerby数据库(内存数据库)

@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) 个答案

  1. # 1 楼答案

    您需要再添加一个注释

        @Entity
        public class MyName{
        @Id 
        private String id;
       @ElementCollection
        @Lob
        private Object name;
    
        getter... setter... methods
        }
    
  2. # 2 楼答案

    除非你使用一些特殊的扩展名或类型(比如postgres中的jsonb或json类型),而且对象的json表示形式只是一个字符串表示形式,您可能应该使用类似jackson的json库将名称LinkedHashMap实例序列化为json字符串,并将值存储在varchar数据类型列中