001package io.ebean.annotation; 002 003import java.lang.annotation.ElementType; 004import java.lang.annotation.Retention; 005import java.lang.annotation.RetentionPolicy; 006import java.lang.annotation.Target; 007 008/** 009 * Used to indicate an entity bean that has 'draftable' support. 010 * <p> 011 * This means that a second set of tables is created to hold draft versions of 012 * the rows and that these can then be published which effectively copies/transfers 013 * the values from the 'draft' table to the 'live' table. 014 * </p> 015 * <p> 016 * Ebean Query supports 'find as draft' which builds the resulting object graph using 017 * the draft tables. This object graph is typically edited, approved in some application 018 * specific manor and then published. 019 * </p> 020 * <p> 021 * EbeanServer has a publish method which transfers/copies the draft object graph to 022 * the 'live' tables. 023 * </p> 024 */ 025@Retention(RetentionPolicy.RUNTIME) 026@Target(ElementType.TYPE) 027public @interface Draftable { 028 029}