栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

休眠/持久性有哪些常见问题?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

休眠/持久性有哪些常见问题?

延迟加载是您将遇到的主要问题之一,尤其是如果遵循标准的DAO模式。您将最终获得延迟加载的集合,但是从DAO层出来后,spring(或者如果不使用spring的话,其他东西)可能会关闭会话。

public class MyDaoImpl implements MyDao {   @Override   @Transactional   public void save(MyObject object) { ... }}

在这种情况下,当“保存”的调用完成时,如果您不在另一个事务中,spring将关闭您的会话。结果,对延迟加载的对象的任何调用都将引发LazyInitializationException。

解决此问题的典型方法是将会话绑定到当前线程。在webapps中,您可以使用OpenSessionInViewFilter轻松完成此操作。对于命令行,您可能需要编写一个实用程序方法,该方法创建会话,绑定到当前线程,然后在完成后解除绑定。您可以在网上找到所有示例。

在集合的主题上,如果您使用“更新”方法(同样,您通常会使用标准DAO模式进行操作),则必须注意不要替换集合实例,而应该操作已经存在的集合到位。否则,hibernate状态将很难确定需要添加/删除/更新的内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号