如何解决将JoinColumn参数设置为可插入和可更新为null
|| 我已经在Internet上看到了几个有关使用JoinColumn的示例,如下面的示例所示。 实际上,关于这个特殊的例子,我想问两个问题。我们不能通过在JoinColumn中添加\“ nullable = false \”参数来摆脱\“ optional \”参数。在可选和可为空的实体关系方面,有什么区别吗?在joincolumn中将可插入和可更新设置为false有什么好处?这样做是为了确保Employee实体无法更新Department实体?@Entity
public class Employee {
// ...
@ManyToOne(optional=false)
@JoinColumn(name=\"DEPT_ID\",insertable=false,updatable=false)
private Department department;
// ...
}
解决方法
ManyToOne上的ѭ1是运行时指令,用于持久性框架在构建Java对象时进行解释。 JoinColumn上的“ 2”用于设置数据库模式,在运行时可能会解释,也可能不会解释,这取决于您的持久性提供程序。
通常,JoinColumn映射是通过这种方式完成的,以表明该关系是由部门从另一端管理的。
您可能会有:
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name=\"DEPT_ID\")
private Set<Employee> employees;
在部门上,您可以通过将新部门添加到集合中来创建新的员工部门关系,而不是在Employee上设置部门。这就是为什么将员工部门标记为不可更新的原因,因为部门“拥有”修改关系的能力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。