在JPA中,我什么时候使用属性optional=false和注释感到困惑@Column(nullable=false)。有什么区别?
optional=false
@Column(nullable=false)
@Column(nullable=false)是用于生成架构的指令。在类中生成的数据库列将在实际数据库中标记为不可为空。
optional=false是运行时指令。它所做的主要功能是与延迟加载有关。您不能延迟加载非集合映射的实体,除非您记得设置了optional = false(因为Hibernate不知道那里应该有一个代理还是一个null,除非您告诉它null是不可能的,否则它可以生成代理人。)