gpt4 book ai didi

java - CascadeType.ALL 和 "insertable = false, updatable = false"是否相互排除?

转载 作者:行者123 更新时间:2023-11-30 05:24:15 28 4
gpt4 key购买 nike

如果我有这样的配置,可以使用吗?

@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "FOREIGN_ID", nullable = false, insertable = false, updatable = false)
ForeignClass foreignClass;

我认为不是,因为级联类型的行为与可插入和可更新参数相冲突。

你觉得怎么样?

最佳答案

它们的含义不同,并且彼此不冲突。

因此给出以下映射:

@Entity
@Table(name="player")
public class Player {


@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinColumn(name = "team_id", nullable = false, insertable = false, updatable = false)
Team team;

}
  • cascade 表示当使用 EntityManagerpersist()merge()玩家,JPA也会自动对该玩家的团队调用persist()/merge()

  • insertableupdatable 是关于是否允许分配新团队或为玩家更新团队。对于DB表来说,就是关于Player表的team_id列的值是否允许插入或更新。

因此,一个是关于在 Team 表中插入/更新记录,另一个是关于插入/更新 Player 表的 team_id 列,这是完全不同的东西。

关于java - CascadeType.ALL 和 "insertable = false, updatable = false"是否相互排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58996129/

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