0

我在 Hibernate 中有一个对象,其中包含一些延迟加载的many-to-one列。我不一定需要将对象与数据库一起保存以进行一组操作。

我如何直接获取一个对象,这样每次我尝试访问多对一实体时,它都不需要从数据库中懒惰地获取,并且我可以检索值(如果它不是最新的也没关系)有一个会话打开。

现在我正在打开会话,创建一个新对象并将其发送给要执行的操作。

// Hibernate class
public class Foo {
   private Long id;

   //many-to-one mapping
   private Bar barObj;

   //getters and setters
}

现在,每当我打电话时,都会fooObj.getBarObj().getId()对服务器进行代理调用以获取 ID 的值。我不希望发生此呼叫,并希望将fooObj其保存在本地。

4

1 回答 1

2

您可以使用“fetch=FetchType.EAGER”注释参数,也可以使用您明确说“join fetch barObj”的查询来获取。第三,您可以编写一些代码来实现深度代理。这可能最适合您的需求,即使远非微不足道。

于 2012-04-21T08:20:36.940 回答