Den*_* S. 5 java hibernate lazy-loading
我多次听说过hibernate中出现了几个问题(特别是在使用延迟加载时).哪些是最常见的,可以采取哪些措施?
最常见的可能是n + 1选择问题,当延迟加载集合导致使用n + 1个单独的查询而不是单个连接查询命中数据库时.
这些问题的解毒剂是常识:-)我相信所有相关的资源(首先是Hibernate参考资料)都会广泛讨论这个问题(以及其他相关问题),以及解决方案和解决方法.简而言之,您不应盲目地从食谱中复制食谱 - 测量代码的性能并相应地进行调整.如果您看到发出的选择太多,则可以有选择地从延迟加载切换到该特定属性/类/查询的加入或子选择提取策略.(请注意,这两者都有其潜在的缺点,因此性能测量也是关键.)
当客户端代码依赖于实体/属性的实际类型时(例如,通过对其进行测试)会产生一个不同的,更加罕见的问题instanceof.如果遇到代理对象,这不是具体类的实例,这样的代码就会中断但是,无论如何编写这样的代码并不是最好的想法,并且它很少是必要的.但是,有时它会继承遗留代码,从而导致可能难以解决的冲突.
| 归档时间: |
|
| 查看次数: |
9702 次 |
| 最近记录: |