SpringBoot @OneToMany 与 Lombok 无限循环

2024-05-02

我的项目使用SpringBoot,它具有双向映射@OneToMany

@Entity
@Table(name = "T_S")
@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@ToString
    public class S implements Serializable {
        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
        @JoinColumn(name = "something", referencedColumnName = "A_ID", nullable = false, insertable = false, updatable = false)
        @OptimisticLock(excluded = false)
        private Set<A> act = new HashSet<>();
        ....something...
    }

    @Entity
    @Table(name = "T_A")
    @Getter
    @Setter
    @EqualsAndHashCode
    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    public class A{
        @ManyToOne(optional = true, fetch = FetchType.LAZY)
        @JoinColumn(name = "A_ID", insertable = false, updatable = false)
        private S sub;
    }
  

当我从存储库获取数据时,它会无限循环。如何修复它?


如果你有 Lombok 等价的双向关系,
hashCode 和 toString 将创建 StackOverflowError。

因此删除@ToString和@EqualsAndHashCode。

我一般认为,在使用 JPA 时,应该在唯一的业务键上实现 equals 和 hashCode。

另一种方法是从 Lombok 中排除某些属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot @OneToMany 与 Lombok 无限循环 的相关文章

随机推荐

  • 如何使用 hostPath 将单个文件映射到 kubernetes pod 中?

    我有一个自己的 nginx 配置 home ubuntu workspace web conf由脚本生成 我更喜欢把它放在下面 etc nginx conf d除了default conf 下面是nginx yaml apiVersion
  • JS专用鼠标按键

    我的鼠标侧面有两个按钮 其默认行为是 后退 和 前进 我想知道的是是否可以在 JavaScript 中检测这些鼠标按钮的点击 或者这些按钮是否是类似于键盘的 播放 音量调高 和 无线开 关 的 特殊 按钮纽扣 我不知道任何特定的鼠标事件 但
  • 修改变量后动态重新导入 Sass 部分

    我正在开发一个利用 Sass 预编译的 Twitter Bootstrap 的项目 每次覆盖变量时 我都必须重新导入 bootstrap sass文件到我的项目主样式表以使覆盖生效 您是否知道如何使此过程自动进行 以便每次修改变量时立即生效
  • AJAX 与 Facebook 身份验证

    我已经构建了一个完全基于 AJAX 的应用程序 它没有页面刷新并使用 AJAX 加载所有内容 现在我想以一种不会重定向用户进行页面刷新的方式嵌入 Facebook 身份验证 目前 Facebook 的工作方式如下 用户通过单击 Facebo
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 指定随机粒子起始颜色而不进行动画更改?

    有没有办法让粒子根据当前的 颜色渐变 产生随机的每个粒子颜色 粒子在其生命周期内不会改变颜色 它们只是在出生时从 颜色渐变 的某个地方被分配了一种颜色 并保持该颜色直到它们死亡 其结果将是出生时的粒子与从红色到蓝色的混合颜色的混合 在我的测
  • 在无头模式下独立运行 Unity,同时捕获屏幕截图

    我需要创建一个在无头模式下运行的统一项目 使用 batchmode 命令 但它必须捕获屏幕截图 例如每一秒并将它们写到一个文件中 我知道在无头模式下 您需要强制调用 Camera Render 才能渲染任何内容 在捕获第一个屏幕截图后 时间
  • Python Numpy TypeError:输入类型不支持 ufunc 'isfinite'

    这是我的代码 def topK dataMat sensitivity meanVals np mean dataMat axis 0 meanRemoved dataMat meanVals covMat np cov meanRemov
  • Apache CXF - WS 解决如何设置 From、ReplyTo、Headers

    我有一个问题 我们正在尝试使用 Apache CXF 实现 WS Addressing 我可以设置一些标头 例如 To 或 Action 但我找不到设置其他标头 例如 From ReplyTo 或 FaultTo 的方法 有人知道该怎么做吗
  • 在Python中解析空选项

    我有一个应用程序 允许您将事件数据发送到自定义脚本 您只需布置命令行参数并指定什么事件数据与什么参数相匹配 问题是这里没有真正的灵活性 您制定的每个选项都将被使用 但并非每个选项都必须有数据 因此 当应用程序构建要发送到脚本的字符串时 某些
  • height: calc(100%) 在 CSS 中无法正常工作

    我有一个 div 我想填充主体的整个高度减去设定的像素数 但我无法得到height calc 100 50px 上班 我想这样做的原因是我有一些元素具有基于一些不同标准的动态高度 例如标题的高度根据它可以包含的不同元素而变化 然后 内容 d
  • ANSI 转义码无法正确显示

    我有以下定义 define ANSI COLOR RED e 31m define ANSI COLOR GREEN e 32m define ANSI COLOR YELLOW e 33m define ANSI COLOR BLUE e
  • SQL Server - 评估期已过期错误

    昨天我的电脑上安装的 SQL Server 2014 试用期结束了 我决定使用 Express 版本并卸载 SQL Server 2014 并安装 Express 版本 但是当我打开SQL Server Management Studio时
  • 如何从网络客户端获取状态码?

    我正在使用WebClient类将一些数据发布到 Web 表单 我想获取表单提交的响应状态代码 到目前为止我已经找到了如果出现异常如何获取状态代码 Catch wex As WebException If TypeOf wex Respons
  • 如何使用 Angular2 数据表

    找不到任何使用教程angular2 data table图书馆在这里 https github com swimlane angular2 data table https github com swimlane angular2 data
  • 传递到 mvn exec:java 时保留参数间距等

    我有一个启动 Maven exec java 进程的 shell 脚本 exec mvn exec java Dexec mainClass Dexec args 现在可悲的是如果我跑步 myMagicShellScript arg1 ar
  • 比较字符串结尾的最佳方法是使用 RIGHT、LIKE 还是其他?

    我需要将字符串的结尾与存储过程中可能的结尾列表进行比较 会被叫很多 大概有10 15个候选结局 此时 仅使用代码的解决方案比创建专用于此的表更好 类似的东西 IF ENDSWITH var foo OR ENDSWITH var bar O
  • Android 支持 React Native 的 LayoutAnimation 吗?

    我没有看到文档中的任何内容 https facebook github io react native docs layoutanimation html指的是缺乏对Android的支持 我正在使用一个简单的预设动画 LayoutAnima
  • 如何使用 AVFoundation 组合不同方向的视频剪辑

    我正在尝试使用 AVFoundation 将多个视频剪辑合并为一个 我可以使用下面的代码使用 AVMutableComposition 创建单个视频 AVMutableComposition composition AVMutableCom
  • SpringBoot @OneToMany 与 Lombok 无限循环

    我的项目使用SpringBoot 它具有双向映射 OneToMany Entity Table name T S Getter Setter EqualsAndHashCode NoArgsConstructor AllArgsConstr