gpt4 book ai didi

java - 将 JoinColumn 参数 insertable 和 updateable 设置为 null

转载 作者:行者123 更新时间:2023-11-30 05:02:33 25 4
gpt4 key购买 nike

我在互联网上看到了一些关于使用 JoinColumn 的示例,如下例所示。

实际上,关于这个特殊的例子,我想问你两个问题。难道我们不能通过向 JoinColumn 添加“nullable=false”参数来摆脱“可选”参数吗?可选实体和可为空实体之间的关系是否存在差异?在joincolumn中将insertable和updatetable设置为false有什么好处?这样做是为了确保 Employee 实体无法更新 Department 实体吗?

@Entity
public class Employee {
// ...

@ManyToOne(optional=false)
@JoinColumn(name="DEPT_ID", insertable=false, updatable=false)
private Department department;
// ...
}

最佳答案

ManyToOne 上的

Optional = false 是持久性框架在构建 java 对象时解释的运行时指令。 JoinColumn 上的 nullable = true 用于设置数据库架构,并且可能会也可能不会在运行时进行解释,具体取决于您的持久性提供程序。

通常,JoinColumn 映射是以这种方式完成的,以表明该关系是由部门从另一方管理的。

您可能会:

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="DEPT_ID")
private Set<Employee> employees;

在您的部门中,您可以通过将员工-部门关系添加到那里的集合来创建新的员工-部门关系,而不是在员工上设置部门。这就是您将员工部门标记为不可更新的原因,因为该部门“拥有”修改关系的能力。

关于java - 将 JoinColumn 参数 insertable 和 updateable 设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179819/

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