@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface PersistenceCapable { /** Member declarations. Annotations for persistent members of this * class or interface can be specifed either here or on each member. * Annotations for inherited members can only be specified here. * @return member declarations */ Persistent[] members() default {}; /** Table to use for persisting this class or interface. */ String table() default ""; /** Catalog to use for persisting this class or interface. */ String catalog() default ""; /** Schema to use for persisting this class or interface. */ String schema() default ""; /** Whether this class or interface manages an extent. */ String requiresExtent() default ""; /** Whether objects of this class or interface can only be embedded. */ String embeddedOnly() default ""; /** Whether this class or interface is detachable. */ String detachable() default ""; /** Type of identity for this class or interface. */ IdentityType identityType() default IdentityType.UNSPECIFIED; /** Primary key class when using application identity and using own PK. */ Class objectIdClass() default void.class; /** Whether this class is cacheable in a Level2 cache. * @since 2.2 */ String cacheable() default "true"; /** Whether objects of this type should, by default, be locked when read. * @since 2.3 */ String serializeRead() default "false"; /** Any vendor extensions. */ Extension[] extensions() default {}; }