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
,BigInteger
orBigDecimal
,LocalDate
,LocalTime
,LocalDateTime
,OffsetTime
,OffsetDateTime
,Instant
, orYear
Date
orCalendar
,java.sql.Date
,java.sql.Time
, orjava.sql.Timestamp
,byte[]
orByte[]
,char[]
orCharacter[]
,- a Java
enum
type, 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
,
java.sql.Date
, java.sql.Time
, java.sql.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
-
Element Details
-
fetch
FetchType fetch(Optional) Whether the value of the field or property should be lazily loaded or must be eagerly fetched.- The
EAGER
strategy is a requirement on the persistence provider runtime that the associated entity must be eagerly fetched. - The
LAZY
strategy 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.This is a hint and is disregarded for primitive types; it may be used in schema generation to infer that the mapped column is
not null
.If not specified, defaults to
true
.- Default:
true
-