@Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface Basic
Basic annotation can be applied to a persistent
 property or instance variable of any of the following types: Java
 primitive types, wrappers of the primitive types, String, 
 java.math.BigInteger,
 java.math.BigDecimal,
 java.util.Date,
 java.util.Calendar, 
 java.sql.Date, 
 java.sql.Time,
 java.sql.Timestamp, byte[], Byte[],
 char[], Character[], enums, and any other type that
 implements java.io.Serializable.
 
  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
 will apply.
 
    Example 1:
    @Basic
    protected String name;
    Example 2:
    @Basic(fetch=LAZY)
    protected String getName() { return name; }
 | Modifier and Type | Optional Element and Description | 
|---|---|
| FetchType | fetch(Optional) Defines whether the value of the field or property should 
 be lazily loaded or must be eagerly fetched. | 
| boolean | optional(Optional) Defines whether the value of the field or property may be null. | 
public abstract FetchType fetch
EAGER 
 strategy is a requirement on the persistence provider runtime 
 that the value must be eagerly fetched.  The LAZY 
 strategy is a hint to the persistence provider runtime.
 If not specified, defaults to EAGER.Copyright © 2019 JBoss by Red Hat. All rights reserved.