java - 有没有一种干净的方法可以使 Hibernate 在 Swing 中使用惰性初始化?

标签 java hibernate swing lazy-loading

这是我想在 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/

相关文章:

java - 灵活的布局管理器,将根据调整大小更改布局

java - JTable 拖放

java - 多个 GUI 之间的连接

java - Apache HTTP 客户端或 URLConnection

java - 如何解决hibernate中乐观锁(Versioning)的问题?

java - DAO与hibernate的关系

java - 使用 hbm 实现 Hibernate 一对多延迟加载

java - 我的 Swing 应用程序有什么问题?

java - Swt 组合框名称/ key 对

java - java repaint() 方法的帮助?