Start here. This is the direct spoken answer to practice first.
Overview
Fetch type is a mapping-level promise or hint, not a complete query-performance plan.
Lazy fetching defers loading an association until code accesses it, usually through a proxy or Hibernate collection. Eager fetching requires the association to be available with the entity, but it does not guarantee one SQL join; the provider may use additional queries. JPA defaults to eager for to-one associations and lazy for to-many associations, though I usually make important choices explicit. The right data shape depends on the use case, not on one global setting.