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

在spring数据中删除或添加子实体时,数据版本不会增加?

钱和平
2023-03-14

我在spring数据中使用了版本注释,所以我有一个父实体,它有子实体列表。当我从子列表中删除元素时,父版本不会增加。有人能为我澄清一下这个版本的替代方案吗,

为什么这种情况下的转换没有增加,这是管理版本控制的好方法还是我应该使用转换“锁”。

在文档中,我读到版本仅在更新数据库中的一行时更新,但在我的情况下,我将版本放在父实体上,我希望

注意:我在网上搜索了很多,但我没有找到一个明确的解决方案,任何人都可以帮助我。

共有1个答案

符懿轩
2023-03-14

我假设您正在使用Hibernate。假设“UnderlyingPerTradingAccount”表有一个名为“trading\u account\u id”的列,它是TradingAccount表的外键。为了实现所描述的行为,需要更改映射。你能试试这个吗:

public class TradingAccount {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
  @JoinColumn(name="trading_account_id", referencedColumnName = "trading_account_id", insertable = false, updatable = false)
  private List<UnderlyingPerTradingAccount> underlyingPerTradingAccounts;

  @Version
  private Long version;
}

public class UnderlyingPerTradingAccount {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  @ManyToOne
  @JoinColumn(name="trading_account_id", nullable = false)
  private TradingAccount tradingAccount;
  private Boolean enableBuy;
  private Boolean enableSell;
}

当更新子实体并触发版本增量时,应将父实体标记为“脏”。

然而,我会想到其他一些方法来跟踪父实体的“版本”更改,因为这只会导致额外的开销,并会更新父实体的语句。

 类似资料:
  • 我的实体。ValidationStep与documentDetail有一对一的关系,documentDetail与documentValidations有一个完全的关系 我的删除查询 父ValidationStep被删除,但是docDetail和documentValidations仍然在数据库中。

  • 我试图在用户ID下添加新的用户数据,但它将旧数据替换为新数据,并添加另一个“users”和“user\u account\u settings”。 这是我的实时数据库:在此处输入图像描述 我的实时数据库必须是这样的:添加新的用户数据而不将旧数据替换为新数据,也不添加“用户”和“user_account_settings”。 这就是我想要的数据库结构示例:在此处输入图像描述 这是用于添加新用户的代码

  • 本文向大家介绍Vuex实现数据增加和删除功能,包括了Vuex实现数据增加和删除功能的使用技巧和注意事项,需要的朋友参考一下 首先,我们要安装vuex,执行命令yarn add vuex 1.编写state数据 2.组件调用state数据进行展示 我们的目的是把state数据赋值给vue组件进行使用,其实,这里有两种常用方法 方式二是我们经常用到的简写方式 基本的数据获取,就是这样的实现,此时我们看

  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的

  • 我目前正在尝试使用spring数据存储库删除我的一些实体。delete调用工作时没有任何异常/错误消息,但之后不会删除实体。 这些是我的实体: 而且 存储库非常简单: delete调用类似于 有什么想法为什么这个变化没有反映在数据库中吗? 编辑1: 我找到了变通办法,但我还是不明白真正的问题是什么。如果我像这样删除帖子(有几个例外,因为违反了约束,但帖子仍然会被删除),它就“起作用”了: 编辑2:

  • 主要内容:JSF数据表添加删除实例JSF中有一个叫作的控件,可用来渲染和格式化表格。使用,我们可以迭代收集或数组数组来显示数据。 具有以简单的方式修改其数据的属性。 要使用,我们需要添加以下HTML头。 以下JSF标签 - 被渲染成以下HTML标签。 JSF数据表添加删除实例 打开 NetBeans IDE 创建一个Web工程:DataTableAddDelete,其目录结构如下所示 - 创建以下文件代码,文件:index.xht