java - Spring boot 的 Arango Edge Creation 错误
问题描述
我正在使用 ArangoDb 为我的研究创建一个项目。这是一个带有 Spring Boot 的后端项目。我在这里关注教程:
https://github.com/arangodb/spring-data-demo
一切都很顺利,但是当我尝试使用“Character”类创建控制器时。我收到此错误:
java.lang.StackOverflowError: null
经过进一步检查,我发现是孩子和父母的映射造成了这个问题。在一个单独的项目中,我创建了一个基本的 POJO(类 Parts),它具有基本属性,例如名称、id 和与角色类中的“childs”类似的 childParts 集合。我做了所有的映射(边缘和所有)并创建了关系。然后,如果我有两个 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": [
{
解决方案
annotations @Ref
、@Relations
、@To
和@From
allow 设置字段boolean lazy
,它指定是否应该延迟加载实体。根据您对实体建模的方式以及您使用上面的哪些注释,我认为您可以解决lazy = true
其中一个中的问题设置。
推荐阅读
- python - 按角度 theta 旋转数据
- tensorflow - 我可以在 Raspberry Pi Pico 上使用 Teachable Machine 吗?
- c++ - 无法理解如何在其他类的实现中链接对象
- ruby-on-rails - 在捆绑之前确保 `gem install byebug -v '11.1.3' --source 'https://rubygems.org/'` 成功
- c++ - '+=' 运算符重载类型不可行
- visual-studio-code - 如何在 VSCode 中停止终端的自动滚动
- java - Java 将重复的代码片段简化为 ActionListener 中的函数
- java - 为什么我得到错误:运行 UI 小部件时找不到符号?
- php - 在 Laravel 中同时使用 join 和 pagination 时的问题
- swift - 组合:对于自定义发布者来说,这是一种好的技术吗?