package de.ppi.fuwesta.oval.validation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Checks that the entity wasn't changed from other person since last read.
* Message
* <ul>
* <li>key: validation.optimistic.lock</li>
* <li>{context}: class name</li>
* <li>{urlReload}: Url to reload the page.</li>
* </ul>
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
@DBConstraint(checkWith = OptimisticLockCheck.class)
public @interface OptimisticLock {
/**
* The column which hold the version, normally "version".
*/
String value() default "version";
/**
* The message, default "validation.optimistic.lock".
*
*/
String message() default OptimisticLockCheck.MESSAGE;
/**
* The primary-key column, normally "id".
*/
String primaryKeyColumn() default "id";
}