Hibernate one-to-one: getId() without fetching entire object Hibernate一对一关系:在不获取整个对象的情况下获取getId()。

7 浏览
0 Comments

Hibernate one-to-one: getId() without fetching entire object Hibernate一对一关系:在不获取整个对象的情况下获取getId()。

我想在不加载整个对象的情况下获取一对一关系的id。我以为可以通过延迟加载来实现,代码如下:

class Foo { 
    @OneToOne(fetch = FetchType.LAZY, optional = false)
    private Bar bar; 
}
Foo f = session.get(Foo.class, fooId);  // Hibernate获取Foo对象
f.getBar();  // Hibernate获取完整的Bar对象
f.getBar().getId();  // 不再进行额外的获取,返回id

我希望f.getBar()不会触发另一个获取操作。我希望Hibernate给我一个代理对象,允许我调用.getId()而不实际获取Bar对象。

我做错了什么?

0