All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.beetl.sql.mapper.annotation.SqlProvider Maven / Gradle / Ivy

The newest version!
package org.beetl.sql.mapper.annotation;

import org.beetl.sql.annotation.builder.Builder;
import org.beetl.sql.mapper.provider.ProviderMapperExtBuilder;
import org.beetl.sql.mapper.provider.SqlTemplatePMI;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * {@code @Sql}注解提供的sql缺少动态性,可以使用SqlProvider注解,让特定的Provider类来提供动态sql
 * 为那些实在是不想写独立的sql文件,但是又有比较复杂的动态sql的人准备的
 * 
{@code
 *     @SqlProvider(UserQueryProvider.class)
 *     public User query(Integer id)
 * }
* *
 *     class UserQueryProvider{
 *        SqlReady query(Integer id){
 *            .....
 *        }
 *     }
 *
 * 
* * @author darren * @see SqlTemplatePMI * @see ProviderMapperExtBuilder */ @Target({java.lang.annotation.ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Builder(ProviderMapperExtBuilder.class) public @interface SqlProvider { /** * 由哪个类来提供生成动态的SQL,这个类的方法名需要与mapper同名,否则,需要使用method属性来说明是哪个类方法 * 且此类方法的返回值是SqlReady * @return 类 */ Class provider(); /** * 由provider类的哪个方法来提供动态SQL * 不设置则由取当前被注解方法的同名方法 * @return 方法名 */ String method() default ""; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy