001package io.ebean.annotation;
002
003import java.lang.annotation.Retention;
004import java.lang.annotation.RetentionPolicy;
005import java.lang.annotation.Target;
006
007import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
008import static java.lang.annotation.ElementType.TYPE;
009
010/**
011 * Specify a storage engine to use with a specific table.
012 * <p>
013 * Intended for databases like ClickHouse and MySql that have multiple storage engine options.
014 * </p>
015 * <pre>{@code
016 *
017 * @StorageEngine("ENGINE = MergeTree()")
018 * @Entity
019 * public class Orders {
020 *   ...
021 * }
022 *
023 * }</pre>
024 */
025@Target({TYPE, ANNOTATION_TYPE})
026@Retention(RetentionPolicy.RUNTIME)
027public @interface StorageEngine {
028
029  /**
030   * The platform specific storage engine clause that would be part of create table statements.
031   */
032  String value();
033}