package io.ebean.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

Used to indicate an entity bean that has 'draftable' support.

This means that a second set of tables is created to hold draft versions of the rows and that these can then be published which effectively copies/transfers the values from the 'draft' table to the 'live' table.

Ebean Query supports 'find as draft' which builds the resulting object graph using the draft tables. This object graph is typically edited, approved in some application specific manor and then published.

EbeanServer has a publish method which transfers/copies the draft object graph to the 'live' tables.

/** * Used to indicate an entity bean that has 'draftable' support. * <p> * This means that a second set of tables is created to hold draft versions of * the rows and that these can then be published which effectively copies/transfers * the values from the 'draft' table to the 'live' table. * </p> * <p> * Ebean Query supports 'find as draft' which builds the resulting object graph using * the draft tables. This object graph is typically edited, approved in some application * specific manor and then published. * </p> * <p> * EbeanServer has a publish method which transfers/copies the draft object graph to * the 'live' tables. * </p> */
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Draftable { }