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

Java:hibernate 实体类可以被定义为 final 吗?

万志专
2023-04-24

可以将hibernate的实体类定义为final,但这种做法不好。

因为hibernate会使用代理模式在延迟关联的情况下提高性能,如果你把实体类定义成final类之后,因为Java不允许对final类进行扩展,所以hibernate就无法再使用代理了,如此一来就限制了使用可以提升性能的手段。

不过,如果你的持久化类实现了一个接口,而且在该接口中声明了所有定义于实体类中的所有public的方法的话,就能避免出现前面所说的不利后果。

 类似资料:
  • 本文向大家介绍hibernate 实体类可以被定义为 final 吗?相关面试题,主要包含被问及hibernate 实体类可以被定义为 final 吗?时的应答技巧和注意事项,需要的朋友参考一下 实体类可以定义为 final 类,但这样的话就不能使用 hibernate 代理模式下的延迟关联提供性能了,所以不建议定义实体类为 final。

  • 问题内容: 引用http://sites.google.com/site/gson/gson-design- document : 为什么Gson中的大多数课程都标记为期末考试? 尽管Gson通过提供可插入的串行器和反序列化器提供了相当可扩展的体系结构,但Gson类并不是专门设计为可扩展的。提供非最终类将允许用户合法地扩展Gson类,然后期望该行为在所有后续修订版中均有效。我们选择通过将类标记为f

  • 我正在讨论以下问题:使用Java 8的可选和stream::FlatMap并希望向自定义的添加一个方法,然后检查它是否工作。 更准确地说,我希望向我的添加一个。如果不存在值,则返回一个空流,如果存在,则返回一个包含单个元素的流。 但是,我得出的结论是,声明为final。 为什么会这样呢?有一些类没有声明为final,我个人认为这里没有理由声明final。 作为第二个问题,为什么不是所有的方法都是f

  • 例如,我在语法中定义了几个lexer规则: 我需要以某种方式标记关键字(“int”、“float”和其他),当我使用TokenStream获取令牌时,我可以通过一些自定义符号对其进行过滤。 有可能吗? 现在我只看到一种方法——将必要的词汇组合成某种规则。 使现代化 我尝试应用下面第一个答案的第一个选项,但遇到了下一个问题:我得到一个错误:“TOKENNAME不是可识别的令牌名称” 因为这是一个问题

  • 本文向大家介绍String类可以被继承吗?相关面试题,主要包含被问及String类可以被继承吗?时的应答技巧和注意事项,需要的朋友参考一下 String类在声明时使用final关键字修饰,被final关键字修饰的类无法被继承。 接下来我们可以看一下String类的源代码片段:   为什么Java语言的开发者,把String类定义为final的呢? 因为只有当字符串是不可变的,字符串池才有可能实现。

  • 尽管标题出现了,但这并不是一个哲学问题。 从未初始化的数组读取 使用错误数据 使用不可移植构造。(即内存分配的细节1) 导致具有的行为 标准没有要求产生可预测的效果 我会称之为“未定义的行为”。但也许我错过了什么(?) null null