I am a newbie to Java Persistence API and Hibernate.
What is the difference between FetchType.LAZY and FetchType.EAGER in Java Persistence API?
The Lazy Fetch type is by default selected by Hibernate unless you explicitly mark Eager Fetch type. To be more accurate and concise, difference can be stated as below.
FetchType.LAZY = This does not load the relationships unless you invoke it via the getter method.
FetchType.EAGER = This loads all the relationships.
Pros and Cons of these two fetch types.
Lazy initialization improves performance by avoiding unnecessary computation and reduce memory requirements.
Eager initialization takes more memory consumption and processing speed is slow.
Having said that, depends on the situation either one of these initialization can be used.