这是我要在Swing应用程序中执行的操作的描述。

因此,假设我有一个对象Client,里面有一些集合。
在应用程序启动时,我只想加载对象Client并在表中显示其基本属性(如名称,年龄等)。稍后,当用户需要时,我想加载完整的Client(集合)。

当我尝试使用Hibernate延迟加载客户端时,由于尝试在加载客户端的原始会话之外加载这些对象而遇到了一些问题。

我在网上搜索一种干净/简便的方法来完成此操作,但最终我还是做了一个我并不十分自豪的hack:
基本上,我从Client重构了基本属性,并创建了一个ClientDetails类。在客户端中,我现在有一个ClientDetails。因此,在启动时,我仅加载ClientDetails,然后在必要时加载Client,这将再次加载ClientDetails。这将使我不得不更新第一次加载的原始ClientDetails的引用(这很麻烦)。

因此,我的问题是,是否有更好/更干净的方法通过使用延迟加载来做到这一点?

希望这不会太令人困惑:)

谢谢!

最佳答案

您应该加载Client对象,关闭加载它的Session,然后在要显示该集合时,打开另一个Session并将Client对象重新附加到该对象。

关于java - 有没有一种干净的方法可以使Hibernate与Swing中的延迟初始化一起工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6144565/

10-13 06:23