一尘不染

@ManyToOne(optional = false)与@Column(nullable = false)有什么区别

hibernate

在JPA中,我什么时候使用属性optional=false和注释感到困惑@Column(nullable=false)。有什么区别?


阅读 855

收藏
2020-06-20

共1个答案

一尘不染

@Column(nullable=false)是用于生成架构的指令。在类中生成的数据库列将在实际数据库中标记为不可为空。

optional=false是运行时指令。它所做的主要功能是与延迟加载有关。您不能延迟加载非集合映射的实体,除非您记得设置了optional =
false(因为Hibernate不知道那里应该有一个代理还是一个null,除非您告诉它null是不可能的,否则它可以生成代理人。)

2020-06-20