将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上设置部门。这就是为什么将员工部门标记为不可更新的原因,因为部门“拥有”修改关系的能力。     

要回复问题请先登录注册