By default, and for performance reasons, all field values are designated to be fetched lazily, due to the fact that the implied fetch attribute found on each of the field mappings (@Basic, @OneToMany, etc.) holds a default vlaue of FetchType.LAZY. This default FetchType.LAZY value is in fact only a hing and the persistence manager is not bound to honor the request. For many fields, including nearly all simple values, it would be a significant burden to lazily fault in the fields of an entity as they are actually required, so the persistence manager generally ignores the FetchType.LAZY directive and loads them eagerly anyhow.
When the non-default value FetchType.EAGER is specified on a field mapping, however this is not an optional request. When a field is so decorated, the persistence manager is obliged to eagerly bind its value when the entity is istantiated. This is particularly relevant when dealing with relationship fields. A relationship field may be annotated with the vant when dealing with relationship fields.