The default persistence provider treats only OneToOne, ManyToOne, OneToMany, and ManyToMany mappings specially when they are annotated as LAZY. OneToMany and ManyToMany mappings are loaded lazily by default in compliance with the Java Persistence Specification. Other mappings are always loaded eagerly. For OneToOne and ManyToOne mappings, value holder indirection is used. For OneToMany and ManyToMany mappings, transparent indirection is used.