代码之家  ›  专栏  ›  技术社区  ›  efex09

使用提供的json字符串创建模型

  •  1
  • efex09  · 技术社区  · 7 年前

    我想在springboot中使用以下json字符串创建模型。

    {
      "name": "inox",
      "seatInfo": {
        "A": {
          "numberOfSeats": 10,
          "aisleSeats": [
            0,
            5,
            6,
            9
          ]
        },
        "B": {
          "numberOfSeats": 15,
          "aisleSeats": [
            0,
            5,
            6,
            9
          ]
        },
        "D": {
          "numberOfSeats": 20,
          "aisleSeats": [
            0,
            5,
            6,
            9
          ]
        }
      }
    }
    

     import java.util.Map;
     import javax.persistence.*;
    
     @Entity
     public class Screen {
    
         @Id
         @GeneratedValue
         private Long id;
         private String name;
         private Map<String, RowInfo> seatInfo;
    
         //getter and setters
     }
    
    
     import javax.persistence.Entity;
     import javax.persistence.GeneratedValue;
     import javax.persistence.Id;
     import java.util.Arrays;
    
     @Entity
     public class RowInfo {
    
         @Id
         @GeneratedValue
         private Long id;
         private int numberOfSeats;
         private Integer aisleSeats[];
    
         //getters and setters
     }
    

    当应用程序启动时,我得到以下异常。

    3 回复  |  直到 7 年前
        1
  •  0
  •   xcesco    7 年前

    使用HashMap类型(或您喜欢的类型)更改映射接口。

    @Entity
    public class Screen {
    
         @Id
         @GeneratedValue
         private Long id;
         private String name;
         private HashMap<String, RowInfo> seatInfo;
    
         //getter and setters
     }
    
    
     import javax.persistence.Entity;
     import javax.persistence.GeneratedValue;
     import javax.persistence.Id;
     import java.util.Arrays;
    
     @Entity
     public class RowInfo {
    
         @Id
         @GeneratedValue
         private Long id;
         private int numberOfSeats;
         private Integer aisleSeats[];
    
         //getters and setters
     }
    
        2
  •  0
  •   DarkSuniuM Mirko Jelic    7 年前

    如果您使用的是JPA 2,请添加:

    @ElementCollection
    
    private Map<String, RowInfo> seatInfo;
    
        3
  •  0
  •   kj007 XdebugX    7 年前

    @Entity
    public class Screen {
    
        @Id
        @GeneratedValue
        private Long id;
        private String name;
        @ElementCollection
        private Map<String, RowInfo> seatInfo;
    }