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

可能具有不变的JPA实体?

爱亮
2023-03-14
问题内容

在我们的hibernate项目中,使用java bean模式对实体进行编码。在我们的代码中,有很多地方有人忘记了设置变量的设置,但由于NOT NULL字段而导致异常。

是否有人在使用构建器来构建其实体或使其不可变?

我正在尝试找到一种不是Java bean模式样式的有效模式。

谢谢


问题答案:

如果使Bean不可变,则必须使用字段级访问,并且这附带了它自己的一系列问题,在此进行了详细讨论。我们采用的方法是让Builder / Factory强制/验证我们的需求等规则。



 类似资料:
  • 问题内容: 在我们的应用程序中,我们需要具有只能分配一次的字段。 最初,我们想到封装字段并将设置程序设为私有。但是,引起一些问题: 如果没有公共设置者,Hibernate是否仍然可以从数据库映射字段? 我是否可以剥离设置器并使字段仅在实体构造函数中可变? 最后,是否有任何标准的JPA方法使字段不变? 提前致谢。 问题答案: 广告。1:我相信,如果将注释放在字段而不是在getter上,则JPA会将普

  • 假设我有一个名为的JPA实体类用于存储照片。我还有另一个名为的非实体类来保存这些计数信息,如、和。现在,如果在实体类中添加一个实例变量()来保存这些状态信息,则会显示以下错误消息: 基本属性只能是以下类型:Java基本类型、基本类型包装器、字符串、Java。数学BigInteger,java。数学BigDecimal,java。util。日期,爪哇。util。日历,java。sql。日期,爪哇。s

  • 问题内容: 我有以下实体: 我的属性ScriptItem是其他3个类的接口。是否可以将JPA配置为在运行时执行时设置正确的类ID? 其他资源: 我应该使用哪些注释来让JPA理解要保存3个类之一的ID? 提前致谢, 问题答案: 这确实是一个好主意,但不幸的是,JPA不支持将接口直接映射为实体属性。 您只能映射直接用注释的顶级类。这个顶级类可以实现一个接口。 这个功能已经被要求并讨论了很长时间。 根据

  • 我们在MapStruct中使用不可变项,在将实体转换为dto时遇到问题。 mapper类 在出现错误的情况下,问题是完全相同的 我检查了mapstruct与不可变的测试,没有什么不同https://github.com/mapstruct/mapstruct/blob/master/integrationtest/src/test/resources/immutablesBuilderTest/m

  • 我对JPA和ORMs真的很陌生,所以我希望你原谅我的愚蠢问题。我在这个博客和其他网站上读了很多帖子,但建议的解决方案,即使看起来合理,对我来说并不奏效。 我哪里搞错了?多谢帮忙。 编辑:我已添加导入

  • 问题内容: 我正在尝试使用CONTAINS函数(MS SQL)创建Criteria API查询: 从com.t_person中选择*,其中包含(last_name,’xxx’) 但是出现异常:org.hibernate.hql.internal.ast.QuerySyntaxException:意外的AST节点: 有什么帮助吗? 问题答案: 如果您要坚持使用,则应该是这样的: 您的问题似乎缺少一些