JPA/Hibernate 里 @Column 的属性设置和数据库表中字段的属性设置之间的关系?

譬如 JPA/Hibernate 里

@Column(name = "foodName", unique = true, nullable = false)
在数据库里,字段 food_name 本身就已经设置了 not null 以及 unique

那么在 @Column 中还重复设置一次的意义何在?

如果有冲突的话,以哪个为准?

阅读 5k
1 个回答

谢邀,我说一下我的认识:
@Column设置了not null ,当你持久化这个对象的时候,发现这个设置了not null属性的字段为空,会抛异常,
当然如果你不设置,到了数据库,数据库发现这个字段设置了not null属性的字段为空,也会抛异常,那区别是什么呢?
个人认为,在对象上设置了not null,那么就在应用程序级别就校验了这个字段,如果你不在对象设置not null,那么就需要去链接数据库,在数据库的层面才校验这个字段,这是一个效率问题,多了一个数据库的连接过程,数据库的连接还是很有开销的。

以哪个为准? 以实际业务为准!
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题