我想在不加載整個對象的情況下獲取一對一關係的id。我以爲我可以如下做到這一點使用延遲加載:休眠一對一:getId()而不提取整個對象
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()來不觸發另取。我想讓hibernate給我一個代理對象,它允許我調用.getId()而不實際獲取Bar對象。
我在做什麼錯?
相同的行爲.. – Rob 2010-04-07 16:14:26
它是一個休眠的bug:https://hibernate.atlassian.net/browse/HHH-3718 另請參閱比較字段或屬性訪問:http://stackoverflow.com/questions/594597/hibernate-annotations-which-is-更好的領域或財產訪問 – GKislin 2016-10-04 21:03:55