休眠一对一:getId() 不获取整个对象
我想获取一对一关系的ID,而无需加载整个对象。我认为我可以使用延迟加载来执行此操作,如下所示:
class Foo {
@OneToOne(fetch = FetchType.LAZY, optional = false)
private Bar bar;
}
Foo f = session.get(Foo.class, fooId); // Hibernate fetches Foo
f.getBar(); // Hibernate fetches full Bar object
f.getBar().getId(); // No further fetch, returns id
我希望f.getBar()不触发另一个获取。我希望休眠给我一个代理对象,允许我调用.getId(),而无需实际获取Bar对象。
我做错了什么?