【问题标题】:Arango Edge Creation bug with Spring bootSpring boot 的 Arango Edge Creation 错误
【发布时间】:2023-03-04 01:09:02
【问题描述】:

我正在使用 ArangoDb 为我的研究创建一个项目。这是一个带有 Spring Boot 的后端项目。我在这里关注教程:

https://github.com/arangodb/spring-data-demo

一切都很顺利,但是当我尝试使用“Character”类创建控制器时。我收到此错误: java.lang.StackOverflowError: null

经过进一步检查,我发现是孩子和父母的映射造成了这个问题。 在一个单独的项目中,我创建了一个基本的 POJO(类 Parts),它具有基本属性,例如名称、id 和一个 childPart 的集合,类似于您的角色类中的“childs”。我做了所有的映射(边缘和所有)并创建了关系。然后,如果我有两个 Parts 对象,P1 和 P2,我将 P2 作为 P1 的子部分。 JSON 响应以 P2 作为 P1 的子节点,然后 P1 作为 P2 的子节点,再以 P2 作为 P1 的子节点出现。它是一个无限循环。早些时候我认为我的实现存在一些问题,但是当我下载了演示代码时。它有同样的问题。 请让我知道是否有办法解决这个问题或者我错过了什么。

教程代码的邮递员响应实际上是一个无限循环。像这样的:

[
    {
        "id": "424543",
        "name": "Sansa",
        "surname": "Stark",
        "alive": true,
        "age": 13,
        "childs": [
            {
                "id": "424594",
                "name": "Ned",
                "surname": "Stark",
                "alive": false,
                "age": 41,
                "childs": [
                    {
                        "id": "424606",
                        "name": "Robb",
                        "surname": "Stark",
                        "alive": false,
                        "age": null,
                        "childs": [
                            {
                                "id": "424594",
                                "name": "Ned",
                                "surname": "Stark",
                                "alive": false,
                                "age": 41,
                                "childs": [
                                    {
                                        "id": "424606",
                                        "name": "Robb",
                                        "surname": "Stark",
                                        "alive": false,
                                        "age": null,
                                        "childs": [
                                            {
                                                "id": "424594",
                                                "name": "Ned",
                                                "surname": "Stark",
                                                "alive": false,
                                                "age": 41,
                                                "childs": [
                                                    {   

【问题讨论】:

    标签: java spring spring-boot arangodb


    【解决方案1】:

    注解@Ref@Relations@To@From允许设置字段boolean lazy,它指定实体是否应该延迟加载。根据您对实体建模的方式以及您使用上面的哪些注释,我认为您可以解决在其中一个中设置 lazy = true 的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-25
      • 2015-06-09
      • 2018-10-24
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2018-11-14
      相关资源
      最近更新 更多