我在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
在本地保存。
答案 0 :(得分:2)
您可以使用'fetch = FetchType.EAGER'注释参数或使用查询获取,其中您明确地说'join fetch barObj`。第三,您可以write some code实现深度贬低。这可能是最适合您需求的,尽管远非微不足道。