agent.get(Book): publisher initialized? false book.publisher.getName() before fetch -> LazyInitializationException agent.fetch(book.publisher) -> getName() = Manning same object as book.publisher? true, initialized now? true reading the public field p.name instead -> null SQL (1 statement) select p1_0.id,p1_0.name from publisher p1_0 where p1_0.id=? agent.get(Publisher): books collection initialized? false agent.fetch(publisher.books) -> 3 books SQL (1 statement) select b1_0.publisher_id,b1_0.isbn,b1_0.price,b1_0.title,b1_0.version,b1_0.views from book b1_0 where b1_0.publisher_id=?