开发者

Hibernate bidirectional query

I have a question regarding Hibernate bidirectional. Lets say I have 2 classes, Class A and Class B and bidirectionally related. That means when I query Class A, I also can get Class B and vice versa. My question is how hibernate work when I do this

Clas开发者_StackOverflow中文版sA classA = ClassA.findClassAById(1);
ClassB = classA.getClassB().getClassA().getClassB();

I know I can get ClassB with just classA.getClassB();, but I also can get classA.getClassB().getClassA().getClassB().getClassA().getClassB()...;

Can someone explain to me how hibernate work with bidirectional query?

I'm concerned about performance.


Hibernate employes an efficient first level cache also known as the PersistantContext If an object is loaded in the context , hibernate does not hit the database to get the same object.

In the problem statement when findClassAById(1) is called classA object is loaded in the persistance context. classB object is loaded at the same time or later depending on the lazy loading/eager loading strategy adopted. Following which the database should not be hit ideally for all future calls.

You can very well google Persistance Context for more information about how it works.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜