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

com.gitee.sunchenbin.mybatis.actable.annotation.Column Maven / Gradle / Ivy

package com.gitee.sunchenbin.mybatis.actable.annotation;

import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import com.gitee.sunchenbin.mybatis.actable.utils.ColumnUtils;

import java.lang.annotation.*;

/**
 * 建表的必备注解
 *
 * @author sunchenbin, Spet
 * @version 2019/07/06
 */
// 该注解用于方法声明
@Target(ElementType.FIELD)
// VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息
@Retention(RetentionPolicy.RUNTIME)
// 将此注解包含在javadoc中
@Documented
public @interface Column{

	/**
	 * 字段名
	 * 1.4.0版本支持,类同javax.persistence.Column.name
	 * @return 字段名:不填默认使用属性名作为表字段名
	 */
	String value() default "";

	/**
	 * 字段名
	 * 1.3.0版本支持,类同javax.persistence.Column.name
	 * @return 字段名:不填默认使用属性名作为表字段名
	 */
	String name() default "";

	/**
	 * 字段类型:不填默认使用属性的数据类型进行转换,转换失败的字段不会添加
	 * 仅支持com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant中的枚举数据类型
	 * 不填默认转换类:com.gitee.sunchenbin.mybatis.actable.command.JavaToMysqlType
	 * 1.3.0版本支持,也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.ColumnType
	 * @return 字段类型
	 */
	MySqlTypeConstant type() default MySqlTypeConstant.DEFAULT;

	/**
	 * 字段长度,默认是255
	 * 类型默认长度参考:com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant
	 * 1.3.0版本支持,类同javax.persistence.Column.length
	 * @return 默认字段长度,默认是255
	 */
	int length() default 255;

	/**
	 * 小数点长度,默认是0
	 * 类型默认长度参考:com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant
	 * 1.3.0版本支持,类同javax.persistence.Column.scale
	 * @return 小数点长度,默认是0
	 */
	int decimalLength() default 0;

	/**
	 * 是否为可以为null,true是可以,false是不可以,默认为true
	 * 也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.IsNotNull
	 * 1.3.0版本支持,类同javax.persistence.Column.nullable
	 * @return 是否为可以为null,true是可以,false是不可以,默认为true
	 */
	boolean isNull() default true;

	/**
	 * 是否是主键,默认false
	 * 也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.IsKey
	 * 1.3.0版本支持,类同javax.persistence.Id
	 * @return 是否是主键,默认false
	 */
	boolean isKey() default false;

	/**
	 * 是否自动递增,默认false
	 * 也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.IsAutoIncrement
	 *
	 * @return 是否自动递增,默认false 只有主键才能使用
	 */
	boolean isAutoIncrement() default false;

	/**
	 * 默认值,默认为null
	 * 1.3.0版本支持,也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.DefaultValue
	 * @return 默认值
	 */
	String defaultValue() default ColumnUtils.DEFAULTVALUE;

	/**
	 * 数据表字段备注
	 * 1.3.0版本支持,也可通过注解实现:com.gitee.sunchenbin.mybatis.actable.annotation.Comment
	 * @return 默认值,默认为空
	 */
	String comment() default "";

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy