这是我想在 Swing 应用程序中执行的操作的描述。
因此,假设我有一个对象 Client,其中包含一些集合。 在应用程序启动时,我只想加载对象 Client 并在表中显示其基本属性(如姓名、年龄等)。稍后,当用户需要时,我想加载完整的客户端(集合)。
当我尝试使用 Hibernate 延迟加载客户端时,我遇到了一些问题,因为我试图在加载客户端的原始 session 之外加载这些对象。
我在网上搜索一种干净/简单的方法来做到这一点,但最后我做了一个我不太自豪的 hack: 基本上我重构了客户端的基本属性并创建了一个类ClientDetails。在客户端中,我现在有一个 ClientDetails。所以在启动时我只加载 ClientDetails,然后在必要时加载 Client,这将再次加载 ClientDetails。这将使我不得不更新第一次加载的原始 ClientDetails 的引用(这很乱)。
那么,我的问题是,有没有更好/更干净的方法通过使用延迟加载来做到这一点?
希望这不会太困惑 :)
谢谢!
最佳答案
你应该加载Client
对象,关闭加载它的Session
,然后当你想显示集合时,打开另一个Session
并重新附加 Client
对象到它。
关于java - 有没有一种干净的方法可以使 Hibernate 在 Swing 中使用惰性初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144565/