@Documented @Inherited @Retention(value=RUNTIME) @Target(value=FIELD) public @interface ByReference
A @ByReference-marked field can be of any Object type that is not itself a legal Managed type. Fundamental classes in the java.lang and java.util packages - meaning String, Date, and all auto-boxed types - may not be used in @ByReference fields. Using an illegal type will cause an exception to be thrown at class-load time.
Objects stored in a @ByReference field will never be transmitted between engines or nodes. A single shared memory instance, which may be represented in multiple VMs, will maintain independent storage for the @ByReference field on each of those VMs.
Exercise caution when using a process-local reference - as a result of failover or migration, an object may be re-homed on a new VM. The @ByReference fields will be null when examined on that VM.
There is no transaction locking provided for non-Managed Java types. Note that locking occurs only on the Managed object, as part of accessing or updating the ByReference-marked field.
This annotation has no effect when used in a non-Managed class.