我正在使用hibernate criteria API来检索数据.这些数据将由用户查看.用户无法修改这些数据.那么,使用readOnly有什么好处吗?你能说明利弊吗?我还需要考虑其他措施吗?
Dan*_*lor 12
Hibernate跟踪会话中加载的所有对象以查找修改并在刷新会话时保留所有更改.如果以只读方式加载实体,则指示Hibernate不跟踪该实体的更改.这样,您将获得一些性能提升.
但是,该对象将保留在会话缓存中.如果缓存太大,它就会成为一个很大的问题,同时也存在内存不足的风险.如果您阅读了许多物体,那么将其驱逐出去是件好事.
如果Hibernate的性能确实是一个问题,那么切换到纯JDBC是一个更好的选择.我从不使用Hibernate来加载大量数据(例如报表或批处理).为了显示列表,我只加载我需要的字段,而不是整个实体(如果只读取所选字段,而不是整个实体,则它们始终是只读的).
所以答案是,是的,它会使Hibernate更快一些,但还有其他方法可以获得更高的性能.
| 归档时间: |
|
| 查看次数: |
9095 次 |
| 最近记录: |