当前位置: 首页 > 面试题库 >

困惑:使用JPA和Hibernate的@NotNull与@Column(nullable = false)

魏俊茂
2023-03-14
问题内容
  1. 当它们出现在的字段/获取器上时,它们@Entity之间有什么区别?(我通过 Hibernate 保留了Entity )。

  2. 它们每个都属于什么框架和/或规范?

  3. @NotNull位于中javax.validation.constraints。在javax.validation.constraints.NotNulljavadoc中说

带注释的元素不能为null

但是它没有说数据库中元素的表示形式,那么为什么nullable=false要在列中添加约束呢?


问题答案:

@NotNull是JSR 303
Bean验证
批注。它与数据库约束本身无关。由于Hibernate是JSR
303的参考实现,因此它会智能地选择这些约束并将它们转换为数据库约束,因此您只需付出1即可获得两个。@Column(nullable = false)是JPA声明列为非空的方法。即前者用于验证,而后者则用于指示数据库模式详细信息。您将从Hibernate的验证批注中获得一些额外的(欢迎使用!)帮助。



 类似资料:
  • 问题内容: 当它们出现在的字段/获取器上时,它们@Entity之间有什么区别?(我通过Hibernate保留了Entity )。 它们每个都属于什么框架和/或规范? 位于中。在中说 带注释的元素不能为空 但是它没有提到数据库中元素的表示形式,那么为什么要在列中添加约束呢? 问题答案: 是JSR 303 Bean验证批注。它与数据库约束本身无关。由于Hibernate是JSR 303的参考实现,因此

  • 问题内容: 和JPA持久性之间有什么区别? 问题答案: Gordon Yorke(EclipseLink体系结构委员会成员,TopLink核心技术负责人,JPA 2.0专家组成员)在此主题上写了一个很好的答案,因此,我不用表述他,而是引用他的答案: 和 之间的区别是评估它们的范围。’ ‘ 的定义讨论了属性和字段值,并建议应在运行时内评估此功能。“ ”仅指数据库列。 如果实现选择实现,则这些属性应由

  • 问题内容: 我正在构建实现​​RESTful API的servlet。我知道Jersey是用于解密和使用给定URL的框架。如何与课程结合使用。 我不明白两者如何相互配合。我想这是一个很广泛的问题,但是我在阅读方面做得相当不错,但仍然停留在这个看似微不足道的概念上。我尝试使用扩展类并使用Jersey注释的类来部署应用程序。 } 任何帮助或信息材料将不胜感激! 问题答案: 实际上,您很困惑,因为您不了

  • 问题内容: 我试图在Spring中了解BeanPostProcessor,但我不了解它的作用。BeanPostProcessor定义在这些点上调用的两个方法是否正确: 初始化之前(init方法或afterPropertiesSet),但是实例已创建。 在调用init方法或afterPropertiesSet方法之后 那是对的吗?给定示例和第118页上的文字,这进一步令人困惑。我认为我不能从文本中复

  • 问题内容: 以下三个字段的有效性检查之间有什么区别? 我读到第一个与DDL有关。第二个是用于bean验证的。第三是用于hibernate验证。 那是对的吗?我仍然不明白的是:我什么时候必须使用哪个?这些注释之一何时触发? 编辑:考虑以下情况:考虑到需要开发一个长度为string类型的字段(长度为13)的实体,您会选择上述哪种方法?甚至更好:您必须问自己哪些问题才能找出适合您目的的一个? 问题答案:

  • 下面三个字段的验证检查有什么区别? 我读到第一个与DDL有关。第二个是bean-验证。第三个是Hibernate-Validation。 那是正确的吗?我至今不明白的是:我什么时候必须用哪一个?这些注释中的一个何时触发? 编辑:考虑以下情况:给定开发具有长度为13的字符串类型字段的实体的需求。以上提到的方法你会选择哪一种?或者更好:你必须问自己哪些问题才能找出哪一个适合你的目的?