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

cli*_*ers 7 java hibernate jpa

我很好奇是否有任何人在使用私有字段而不是公共getter方法注释实体之间的性能差异方面有任何硬数据.我听说过人们说字段较慢,因为它们被称为"通过反射",但是再次使用getter方法,不是吗?Hibernate需要在尝试读取字段之前将字段的可访问性设置为true,我可以看到它有一些轻微的开销.但是,不会在会话范围内的类级别上执行,或者只能在读取配置并构建SessionFactory时执行一次?

只是好奇这是否是一个神话,或者它是否真的存在真相; 我个人觉得这些字段的注释更具可读性.

cli*_*ers 9

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

方法总计:6510,平均:217

总计:6586,平均:219

在为每个类添加更多属性之后,我应该再对它进行另一次尝试,但是现在差异似乎没有统计意义.

  • 5000条记录没有统计学意义.你可以尝试一个更复杂的实体结构(需要连接),以及100倍的记录数量吗?使用小型数据集,您将始终拥有快速的性能. (3认同)