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

Hibernate / JPA中是否可能有不可变的字段?

邹正阳
2023-03-14
问题内容

在我们的html" target="_blank">应用程序中,我们需要具有只能分配一次的字段。

最初,我们想到封装字段并将设置程序设为私有。但是,引起一些问题:

  • 如果没有公共设置者,Hibernate是否仍然可以从数据库映射字段?
  • 我是否可以剥离设置器并使字段仅在实体构造函数中可变?
  • 最后,是否有任何标准的JPA方法使字段不变?

提前致谢。


问题答案:
  • 广告。1:我相信,如果将注释放在字段而不是在getter上,则JPA会将普通私有字段用于读写。最近,我发现作为基础JPA提供程序的Hibernate甚至根本不需要get*(),也没有set*()方法。因为从一开始我就认为Hibernate需要访问器,所以这确实是一个启发性的解决方案。因此答案是:就Hibernate而言, 您不需要二传手

  • 广告。2:但是请注意,Hibernate仍然需要no-arg构造函数,否则它将无法加载具有描述性异常的实体。这也是JPA要求。

  • 广告。3:不,没有。请记住,您的收藏也必须是不变的。



 类似资料:
  • 问题内容: 在我们的hibernate项目中,使用java bean模式对实体进行编码。在我们的代码中,有很多地方有人忘记了设置变量的设置,但由于NOT NULL字段而导致异常。 是否有人在使用构建器来构建其实体或使其不可变? 我正在尝试找到一种不是Java bean模式样式的有效模式。 谢谢 问题答案: 如果使Bean不可变,则必须使用字段级访问,并且这附带了它自己的一系列问题,在此进行了详细讨

  • 问题内容: 在hibernate状态下,我想运行此JPQL / HQL查询: userDTO类: 用户实体: 但是当Hibernate 3.5(JPA 2)启动时,出现此错误: 结果是否可能包含列表(u.securityRoles)的选择? 我应该只创建2个单独的查询吗? 问题答案: 没有(选择标量值 和 集合值的路径表达式)的查询无效,因此我认为添加a 不会使事情起作用。 作为记录,这是JPA

  • 问题内容: 我尤其对使用PostgreSQLs 类型感兴趣。 问题的核心似乎是Eclipselink中没有要 类型的内部映射。因此,使用朴素的方法: …并尝试插入对象,但出现异常: 我猜很公平。 浏览EclipseLink文档,似乎适用的自定义项(转换映射,本机查询,转换器)依赖于由受支持的映射(数字,日期,字符串等)组成的数据,因此这使使用它变得很尴尬供应商特定类型。 令人沮丧的主要原因是pos

  • 我尝试遵循在工具栏中创建自定义TextView的教程(https://guides.codepath.com/android/using-the-app-toolbar#custom-title-view)。我想做的是能够使用Java动态更改TextView中的文本。但是,问题是我不能并且没有显示错误消息。 XML 中的工具栏代码: 活动类中的工具栏Java代码: Styles.xml: 一个简单

  • 问题内容: 我最近了解了Java中EnumMap的好处,并希望将现有的替换为EnumMap。但是,我也想要ImmutableMap提供的不可变属性。 番石榴中有可用的ImmutableEnumMap变体吗? 在存储方面,哪个(EnumMap与ImmutableMap)的性能更好? 我找不到两者的比较。如果有人可以将我指向某个链接或对这两种数据结构的效率提供一些见解,我将不胜感激? 问题答案: 番石

  • 问题内容: 因此,我拥有这个现有的数据库架构,其中包含许多要使用JPA / Hibernate建模的表。每个表具有同一组,每组包含30个其他列(以允许运行时扩展记录的字段数)。 我计划为每个表定义简单的类 然后在公共类中定义公共附加参数 尽管这行得通,但我不喜欢此类的硬编码性质。 我想将每组字符串,长字段和双精度字段建模为一个附加参数组,然后将其设置为0..9组。如果需要的话,这样我以后可以轻松添