Lazy collection initialization avoids the associated objects from being loaded when the main object is loaded. With lazy collectioninitialization, all associated object (1 to many) will not be loaded until you access it (e.g. getFlight(0)). Enabling this option can usually reduce more than 80% of the database loading.
Lazy - You must update both ends of a bi-directional association manually to maintain the consistency of the association. Besides, casting of object(s) to its corresponding persistence class is required when retrieving object(s) from the collection.
Extra - When you update one end of a bi-directional association, the generated persistent code is able to update the other end automatically. Besides, you do not need to cast the retrieved object(s) into its corresponding persistence class when retrieving object(s) from the collection.
Non-lazy - Load the associated objects when the main object is loaded.