package io.ebean.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
Specify the entity type maps to a document store (like ElasticSearch).
/**
* Specify the entity type maps to a document store (like ElasticSearch).
*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface DocStore {
A unique Id used when queuing reindex events.
/**
* A unique Id used when queuing reindex events.
*/
String queueId() default "";
The ElasticSearch index name. If left unspecified the short name of the bean type is used.
/**
* The ElasticSearch index name. If left unspecified the short name of the bean type is used.
*/
String indexName() default "";
The ElasticSearch index type. If left unspecified the short name of the bean type is used.
/**
* The ElasticSearch index type. If left unspecified the short name of the bean type is used.
*/
String indexType() default "";
Set to false to disable the "_all" index.
/**
* Set to false to disable the "_all" index.
*/
boolean enableAll() default true;
Set the refresh interval for the index.
/**
* Set the refresh interval for the index.
*/
String refreshInterval() default "";
The number of shards this index should use.
/**
* The number of shards this index should use.
*/
int shards() default 0;
The number of replicas this index should use.
/**
* The number of replicas this index should use.
*/
int replicas() default 0;
Additional mapping that can be defined on the properties.
/**
* Additional mapping that can be defined on the properties.
*/
DocMapping[] mapping() default {};
Specify the behavior when bean Insert, Update, Delete events occur.
/**
* Specify the behavior when bean Insert, Update, Delete events occur.
*/
DocStoreMode persist() default DocStoreMode.DEFAULT;
Specify the behavior when bean Insert occurs.
/**
* Specify the behavior when bean Insert occurs.
*/
DocStoreMode insert() default DocStoreMode.DEFAULT;
Specify the behavior when bean Update occurs.
/**
* Specify the behavior when bean Update occurs.
*/
DocStoreMode update() default DocStoreMode.DEFAULT;
Specify the behavior when bean Delete occurs.
/**
* Specify the behavior when bean Delete occurs.
*/
DocStoreMode delete() default DocStoreMode.DEFAULT;
Specify to include only some properties in the doc store document.
If this is left as default then all scalar properties are included,
all @ManyToOne properties are included with just the nested id property
and no @OneToMany properties are included.
Note that typically DocStoreEmbedded is used on @ManyToOne and @OneToMany
properties to indicate what part of the nested document should be included.
Example:
// only include the customer id and name
@DocStore(doc = "id,name")
@Entity @Table(name = "o_order")
public class Customer {
}
/**
* Specify to include only some properties in the doc store document.
* <p>
* If this is left as default then all scalar properties are included,
* all @ManyToOne properties are included with just the nested id property
* and no @OneToMany properties are included.
* </p>
* <p>
* Note that typically DocStoreEmbedded is used on @ManyToOne and @OneToMany
* properties to indicate what part of the nested document should be included.
* </p>
* <h3>Example:</h3>
* <pre>{@code
*
* // only include the customer id and name
* @DocStore(doc = "id,name")
* @Entity @Table(name = "o_order")
* public class Customer {
*
* }</pre>
*/
String doc() default "";
}