View Javadoc
1   /**
2    * Copyright (c) 2009-2010 by Glodon
3    * All rights reserved.
4    */
5   package gboat2.base.core.annotation;
6   
7   import java.lang.annotation.ElementType;
8   import java.lang.annotation.Retention;
9   import java.lang.annotation.RetentionPolicy;
10  import java.lang.annotation.Target;
11  
12  /**
13   * 用于标识数据库进行关联查询时,表间的关联关系
14   * @author lysming
15   * @author <a href="mailto:[email protected]">何明旺</a>
16   * @since 3.0
17   * @date 2014-3-8
18   * @see Relations
19   */
20  @Retention(RetentionPolicy.RUNTIME)
21  @Target( { ElementType.TYPE, ElementType.ANNOTATION_TYPE })
22  public @interface Relation {
23  	
24  	/** 基础对象 */
25  	public Class<?> base() default DefaultBase.class;
26  	
27  	/** 基础对象 field */
28  	public String[] baseColumn();
29  
30      /** 关联对象 */
31      public Class<?> refer();
32      
33  	/** 关联对象 field */
34  	public String[] referColumn();
35  	
36  	/** 关联类型,默认为内关联 */
37  	public RelationType type() default RelationType.INNER;
38  	
39  	/** 连接条件,优先级高于 column 定义,支持变量。属性使用“[属性名]”或“[类名.属性名]”,变量使用“{变量名称}” */
40  	public String on() default "";
41  	
42  	/**
43  	 * Relation使用的默认类,空实现
44  	 * @author lysming
45  	 * @since 3.0
46  	 * @date 2012-3-20
47  	 *
48  	 */
49  	class DefaultBase {
50  	}
51  }