package org.nutz.dao.entity.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.nutz.dao.DB; /** * 为 '@Next' 以及 '@Prev' 注解声明的可执行 SQL。 * <p> * 支持两个属性: * <p> * <b>db</b><br> * 表示本条 SQL 可以应用到的数据库。DatabaseType.UNKNOWN 为默认值,表示 适用于任何数据库。 * * <p> * <b>value</b><br> * 声明了一条 SQL 语句,支持动态占位符。 * <ul> * <li>变量: $XXX ,由 org.nutz.dao.TableName 来设置,以支持动态表名 * <ul> * <li>特殊占位符: $view: 表示当前实体对象的视图名称 * <li>特殊占位符: $field: 表示注解所在字段数据库名称 * </ul> * <li>参数: '@XXX', 直接参考对象自身的属性值 * </ul> * * @author zozoh(zozohtnt@gmail.com) * * @see org.nutz.dao.DB * @see org.nutz.dao.TableName */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD}) @Documented public @interface SQL { DB db() default DB.OTHER; String value(); }