com.avaje.ebean.annotation.View Maven / Gradle / Ivy
package com.avaje.ebean.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotate an entity bean with @View to indicates the bean is based on a view.
*
* As such typically the view is defined in extra-ddl.xml
using
* create or replace view ...
.
*
*
* When using extra-ddl.xml Ebean will run the resulting DDL script after the
* create-all
DDL (which is typically used during development) and for
* DB Migration will copy the scripts as repeatable migration scripts
that
* will be run by FlywayDb (or Ebean's own migration runner) when their MD5 hash changes.
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface View {
/**
* The name of the view this entity bean is based on.
*/
String name();
/**
* Tables this view is dependent on.
*
* This is used with l2 caching to invalidate the query cache. Changes to these
* tables invalidate the query cache for the entity based on this view.
*
*/
String[] dependentTables() default {};
}