Package org.hibernate.annotations
Annotation Type LazyGroup
-
@Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface LazyGroup
Specifies the fetch group for a persistent attribute of an entity class. This annotation has no effect unless bytecode enhancement is used, and field-level lazy fetching is enabled.- When bytecode enhancement is not used, declaring a field as
@Basic(fetch=LAZY)has no effect on the runtime behavior of Hibernate. All fields of an entity are loaded at the same time, as if they all belonged to the same fetch group. - But when bytecode enhancement is used, a field declared
@Basic(fetch=LAZY)} is loaded lazily when it is first accessed, using a separate SQLselectstatement. Since this trip to the database is generally expensive, Hibernate will, by default, load all lazy fields at once. This annotation provides control over that behavior.
"DEFAULT". The fetch group for a given lazy attribute may be explicitly specified using thevalue()member of this annotation.For example, a field annotated
@Basic(fetch=LAZY) @LazyGroup("extra")belongs to the fetch group named"extra", and is loaded whenever an attribute belonging to the"extra"fetch group is accessed.Note that field-level lazy fetching is usually of dubious value, and most projects using Hibernate don't even bother enabling the bytecode enhancer.
- See Also:
Cache.includeLazy()
- When bytecode enhancement is not used, declaring a field as
-
-
Element Detail
-
value
String value
-
-