当前位置: 首页 > 知识库问答 >
问题:

Hibernate不能设置java.lang.整数字段com。oordinate.idjava.util.ArrayList

方永贞
2023-03-14

我刚开始冬眠,遇到了一个问题。我无法保存包含列表的CustomObject

自定义:

@Entity
public class CustomOjbect implements Serializable{

    private static final long serialVersionUID = -4288223602669270676L;
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;
    @Column(name = "img")
    private String img;
    @OneToOne(cascade=CascadeType.ALL)
    private Feet feet;
    @OneToMany(cascade=CascadeType.ALL, targetEntity=Coordinate.class)
    private List<List<Coordinate>> coordinates = null;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    //Other getter and setters here...
}

协调:

@Entity
public class Coordinate implements Serializable{

    private static final long serialVersionUID = 7288778461661904967L;
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    @Column(name = "y")
    private Float y;
    @Column(name = "x")
    private Float x;

    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    //Getter and setters here...
}

脚:

@Entity
public class Feet implements Serializable {

    private static final long serialVersionUID = -8438970667123556624L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    @Column(name = "height")
    private Integer height;

    @Column(name = "width")
    private Integer width;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    //Getter and setters here
}

当我做列表的时候,它曾经工作得很好

我该怎么解决这个问题?

错误:

java.lang.:无法设置java.lang.整数字段com。XXX. XXX. XXX. Coordinate.idjava.util.ArrayList atsun.reflect.Un安全字段访问mpl.throwSetIllegalArgumentExcema(未知来源)~[na: 1.8.0_111]atsun.reflect.Un安全字段访问mpl.throwSetIllegalArgumentExcema(未知来源)~[na: 1.8.0_111]atsun.reflect.UnSafeFieldAccessorImpl.ensureObj(未知来源)~[na: 1.8.0_111]atsun.reflect.UnseceObjectFieldAccessorImpl.get(未知来源)~[na: 1.8.0_111]atjava.lang.reflect.Field.get(未知来源)~[na: 1.8.0_111]atorg.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:39)~[hibernate-core-5.0.12。final.jar:5.0.12。最终]在org.hibernate.tuple.entity.AbstractEntityTuplizer.get标识符(AbstractEntityTuplizer. java: 225)~[hibernate-core-5.0.12。最终. jar: 5.0.12。最终]在org. hibernate.坚持者. entity.java: 4675)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate.坚持者. entity.java: 4376)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate. ne. interal.ForeignKeys. is瞬态(ForeignKeys. java: 226)~[hibernate-core-5.0.12。最终. jar: 5.0.12。最终]在org. hibernate. evental.getEntityState(AbstractSaveEventLister. java: 510)~[hibernate-core-5.0.12。最终. jar: 5.0.12。最终]在org. hibernate. evental.@no________________________________________________________________________________________________________________________最终. jar: 5.0.12。最终]在org. hibernate. interal.java: 765)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate. interal.java: 758)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate. jpa. evente. interal. core。jpaPeristeEventListener1美元级联(JpaPeristeventListener1. java: 80)~[hibernate-entityManager-5.0.12。最终. jar: 5.0.12。最终]在org. hibernate. ne. interal.java: 398)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate. ne. interal.java: 323)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]在org. hibernate. ne. interal.###############################################################################################################最终. jar: 5.0.12。最终]在org. hibernate. ne. interal.java: 431)~[hibernate-core-5.0.12.最终. jar: 5.0.12。最终]

在控制器中:

@RequestMapping(method = RequestMethod.POST, value = "/saveCustomObjects", consumes = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public String saveImageDetails(@RequestBody CustomObject customObject) {
        customObjectRepository.save(customObject);
        return "Saved successfully";
    }

编辑:

如果你需要知道什么,请问我。

共有1个答案

闻人德庸
2023-03-14

对于那些面临这个问题的人。

正如MGorgon在注释List中指出的那样实体List

所以为了解决这个问题,我改变了从客户端发送的json格式。

之前的JSON格式:

{
  "coordinates": [
    [
      {
      },
      {
      }
    [
      {
      },
      {
      },
      {
      },
      {
      }
    ]
  ]
}

更改后的JSON格式:

{
  "coordinates": [
    {
      "area": [
        {
        },
        {
        }
      ]
    },
    {
      "area": [
        {
        },
        {
        },
        {
      ]
    }
  ]
}

注意:我删除了json中的一些属性以减少代码

希望对某人有所帮助。

 类似资料:
  • 在我的项目中,我有这样一个枚举: 我有这个代码: 我有个例外 myMap由数据库中的数据填充,知道它是SQL Server数据库,并且从数据库返回的myKey在数据库中是tinyint类型。 你能告诉我我做错了什么吗?谢谢 当做

  • 我有整数列作为"状态"在我的数据库。 我的枚举类: } 我的实体字段: Hibernate日志: 组织。postgresql。util。PSQLException:错误:“status”列的类型为integer,但表达式的类型为bytea。提示:您需要重写或强制转换表达式。二进制数据 我使用PostgreSQL。如何解决这个问题?有什么想法吗?

  • 我有一个项目班: 然后是合作者: 在我的DAO中,我想执行以下查询: null 如有任何帮助,我将不胜感激。谢谢。

  • 问题内容: 在golang中,有没有办法查看是否可以将解编入结构的json字段与设置为null的json字段区分开?因为两者都将struct中的值设置为nil,但是我需要知道字段是否以该字段开头,并查看是否有人将其设置为null。 VS 当解组为结构时,两个json均为零。任何有用的资源将不胜感激! 问题答案: 使用以“拖延”解组过程决定做某件事之前要确定原始字节: 参观游乐场https://pl

  • 当我运行这个程序时,我得到了这个错误。我不知道怎么解决。请帮我找到它。 代码:

  • 问题内容: 在我们的应用程序中,我们需要具有只能分配一次的字段。 最初,我们想到封装字段并将设置程序设为私有。但是,引起一些问题: 如果没有公共设置者,Hibernate是否仍然可以从数据库映射字段? 我是否可以剥离设置器并使字段仅在实体构造函数中可变? 最后,是否有任何标准的JPA方法使字段不变? 提前致谢。 问题答案: 广告。1:我相信,如果将注释放在字段而不是在getter上,则JPA会将普