Annotation Interface Basic
The Basic annotation may be applied to a property or
instance variable whose type is any one of the following:
- a Java primitive type, or wrapper of a primitive type,
String,BigIntegerorBigDecimal,LocalDate,LocalTime,LocalDateTime,OffsetTime,OffsetDateTime,Instant, orYearDateorCalendar,java.sql.Date,java.sql.Time, orjava.sql.Timestamp,byte[]orchar[],- a Java
enumtype, or - any other serializable type.
The use of the Basic annotation is optional for persistent
fields and properties of these types. If the Basic annotation
is not specified for such a field or property, the default values of
the Basic annotation apply.
The database column mapped by the persistent field or property may
be specified using the Column annotation.
Example 1:
@Basic
protected String name;
Example 2:
@Basic(fetch = LAZY)
protected String getName() { return name; }
The use of Date, Calendar,
Date, Time, Timestamp,
Character[], or Byte[] as the type of a basic attribute
is now discouraged. Newly written code should use the date/time types
defined in the package java.time, or the primitive array types
char[] and byte[].
- Since:
- 1.0
-
Optional Element Summary
Optional Elements
-
Element Details
-
fetch
FetchType fetch(Optional) Whether the value of the field or property should be lazily loaded or must be eagerly fetched.- The
EAGERpolicy is a requirement on the persistence provider runtime that the associated entity must be eagerly fetched. - The
LAZYpolicy is a hint to the persistence provider runtime.
If not specified, defaults to
EAGER.- Default:
EAGER
- The
-
optional
boolean optional(Optional) Specifies whether the value of the field or property may be null.If the annotated field or property is of primitive type, or if it is also annotated
@jakarta.annotation.Nonnull, thenoptional=falseis implied, and the value of this annotation member is ignored.May be used in schema generation to infer that the mapped column is
not null.If not specified, defaults to
true.- Default:
true
-