gpt4 book ai didi

java - Spring 数据 : Create entities (and DB entries) using boolean fields of another entity

转载 作者:行者123 更新时间:2023-11-29 10:37:23 25 4
gpt4 key购买 nike

我使用 Spring Boot、Spring Data 和 JPA Rest Repositories 以及 MySQL 作为数据库,并且我想在创建实体时执行几项操作。

假设我有一个 MainChecker 实体,每个实体都有各种检查器,每当创建/更新 MainChecker 时都需要创建/删除或更新这些检查器。

这就是我想做的:

使用 Spring Data Repositories 将 MainChecker 实体从前端插入到我的数据库中(因此它将是带有参数的 JSON)。

每个 MainChecker 实体都将具有 boolean 字段(等等)。

基于这些 boolean 字段,我想相应地增删改查其他实体。因此,如果 MainChecker 的某些 boolean 值更改为 false(例如 redChecker),我想删除该 redChecker。但其他棋子仍然保留(例如绿色和蓝色)

奖励问题!其中一个字段是一个 JSON,其中包含用于创建这些其他实体的参数。

一个非常简单的示例:

@Entity
@Table(name="master_checker", catalog="checkers")
public class MasterChecker() {

private Long id;

private Boolean blueChecker;
private Boolean greenChecker;
private Boolean redChecker;

// constructors
// getters and setters

}

我有一些想法,但不确定哪一个是最好的方法。

  1. 我应该为每个字段添加 @OneToOne 关系吗?那么 boolean 值就不行了,它必须是对象。如何从 boolean 值创建对象并从 JSON 字段插入参数?

  2. 制作自定义的 getter 和 setter,并在服务层创建对象(不太喜欢这个选项)

如何做到这一点(以优雅而得体的方式)?

最佳答案

一种选择是使用 RepositoryEventHandlers,例如@BeforeCreate@BeforeSave

它将允许您在创建/更新对象期间添加一些额外的逻辑,您可以例如检查这些检查器是对还是错,并在存储库中执行所需的 CRUD 操作。

查看更多documentation .

关于java - Spring 数据 : Create entities (and DB entries) using boolean fields of another entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46177888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com