【发布时间】:2012-03-29 14:24:02
【问题描述】:
我来这里是为了提供一些建议。我正在使用带有 Java 的 Hibernate。我已经实现了一个控制器界面,以使用户界面与与数据库的实际通信保持距离。对于给定的接口,我实现了一个进行实际通信的数据库控制器类。这由静态控制器工厂提供给用户界面。
现在我发现 Hibernate 实际上并没有将我想要的所有内容加载到内存中。对于每个控制器方法调用,我总是打开会话,做我的事情,关闭会话。因此,当我尝试访问我的对象结构时,我会收到错误提示
could not initialize proxy - no Session
几乎没有努力和谷歌搜索,我得出结论,我的活动对象所引用的对象不在内存中。
现在我可以选择从我开始使用我的对象到结束时保持会话打开。但这似乎有点多余且能源效率低下。我想我不会因为保持会话打开而损失太多,但我有点打算让用户界面完全排除在数据库业务之外。让我的控制器界面为用户界面提供“tearDown”(和“setUp”)方法似乎有点违背给定的逻辑。
【问题讨论】:
-
我们可能需要更多关于您的问题的详细信息,但我建议您查看stackoverflow.com/questions/8493087/…
-
我实际上明白了原因,也明白了如何避免它。我想我应该更多地从事软件工程。我想我想知道处理 ORM 时的标准是什么,因为这是我第一次使用它。