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

Hibernate / JPA中注释字段或获取方法之间的性能差异

南门鸿雪
2023-03-14
问题内容

我很好奇是否有人在使用私有字段而不是公共获取方法注释实体之间的性能差异方面有任何困难的数字。我听说人们说字段变慢了,因为它们被称为“通过反射”,但是getter方法也是,不是吗?Hibernate需要它试图读它,我可以看到有一些前场的无障碍设置为true
轻微的 开销。但是,这不是在Session范围内的类级别上完成,还是在读取Configuration并构建SessionFactory时仅一次?

只是好奇这是一个神话还是真的有道理?我个人发现对字段进行注释更具可读性。


问题答案:

将5000条记录加载到一个简单的3列表中。将两个类映射到该表,一个类使用带注释的私有字段,另一个使用带注释的公共获取方法。运行Spring的HibernateTemplate.loadAll(),然后运行HibernateTemplate.clear()进行30次,以清除会话缓存。结果以毫秒为单位…

方法总计:6510,平均:217

字段总数:6586,平均:219

在为每个类添加更多属性之后,我可能应该再刺一眼,但目前差异似乎在统计上并不显着。



 类似资料:
  • 问题内容: 我很好奇是否有人在使用私有字段而不是公共获取方法注释实体之间的性能差异方面有任何困难的数字。我听说人们说字段变慢了,因为它们被称为“通过反射”,但是getter方法也是,不是吗?Hibernate需要它试图读它,我可以看到有一些前场的无障碍设置为true 轻微的 开销。但是,不是在Session范围内的Class级别上执行此操作,还是在读取Configuration并构建Session

  • 问题内容: 我有一个关于Hibernate使用的简单问题。我通过注释类的字段以及注释相应bean的get方法,以两种方式之一不断看到人们使用JPA注释。 我的问题如下:使用JPA注释(例如@Id),注释字段和bean方法之间是否有区别? 例: - - - - - -要么 - - - - - - 问题答案: 是的,我相信您想搜索现场访问与财产访问: 休眠注释-字段访问或属性访问哪个更好? Sprin

  • 问题内容: 我有一个关于Hibernate使用的简单问题。我通过注释类的字段以及注释相应bean的get方法,以两种方式之一不断看到人们使用JPA注释。 我的问题如下:使用JPA注释,例如@Id,注释字段和bean方法之间是否有区别。 例: - - - - - -要么 - - - - - - 问题答案: Spring首选项是字段访问。这就是我所遵循的。

  • 问题: 1) 和之间的差异? 我已经读到,这两种方法都消除了将代码连接到XML中的必要性,但没有得到它们之间的区别。 2) 、和之间有什么区别? -何时使用哪一种? -每种方法的优缺点是什么?

  • 我读了SO的以下文章 字段读取同步和易失性之间的区别 发问者写道 同步的目的是确保此线程读取的acct.balance值是当前值,并且对acct.balance中对象字段的任何挂起写入也会写入主存。 最受欢迎的答案: 你是正确的。 请研究此代码: 在我的电脑上,这个程序不会终止。 因此我认为 如果我更改volatile变量,我将在另一个线程中看到任何未完成的地方的实际值 我说得对吗?

  • 问题内容: 但是我想知道哪个更好?通过属性访问还是通过字段访问?每种都有哪些优点和缺点? 问题答案: 我更喜欢访问器,因为我可以在需要时向访问器添加一些业务逻辑。这是一个例子: 此外,如果您将其他库(例如一些基于JSON转换的库,BeanMapper或Dozer或其他基于getter / setter属性的Bean映射/克隆库)添加到混合库中,则可以确保该库与持久性同步经理(都使用getter /