以下是我想在Swing应用程序中执行的操作的说明。
所以,想象一下我有一个对象Client,里面有一些集合。 在应用程序启动时,我想只加载对象Client并在表中显示其基本属性(如名称,年龄等)。稍后,当用户想要时,我想加载完整的客户端(集合)。
当我尝试使用Hibernate延迟加载客户端时,由于尝试在加载客户端的原始会话之外加载这些对象,我遇到了一些问题。
我正在网上搜索一个干净/简单的方法来做到这一点,但最后我最终做了一个我不太自豪的黑客: 基本上我重构了Client的基本属性并创建了一个ClientDetails类。在客户端我现在有一个ClientDetails。所以在启动时我只加载ClientDetails然后在必要时加载Client,它将再次加载ClientDetails。这将使我必须更新第一次加载的原始ClientDetails的引用(这很麻烦)。
所以,我的问题是,使用延迟加载是否有更好/更清晰的方法来实现这一点?
希望这不会太混乱:)。
谢谢!
答案 0 :(得分:4)
您应该加载Client
对象,关闭加载它的Session
,然后当您想要显示该集合时,打开另一个Session
和重新连接 Client
对象。