package com.jqmobile.core.orm; 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; /** * 字段标签 * <p> * <table> * <tr><td>java</td><td>mysql 类型默认对照表</td></tr> * <tr><td>UUID</td><td>binary(16)</td></tr> * <tr><td>boolean</td><td>boolean</td></tr> * <tr><td>byte</td><td>binary</td></tr> * <tr><td>long</td><td>binary</td></tr> * <tr><td>short</td><td>smallint</td></tr> * <tr><td>int</td><td>int</td></tr> * <tr><td>float</td><td>float</td></tr> * <tr><td>double</td><td>decimal(17,5)</td></tr> * <tr><td>String</td><td>nvarchar</td></tr> * </table> * * @author modi * */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(value=ElementType.FIELD) public @interface DBColumn { public static final String DefaultValue = DBTable.DefaultValue; //public static final String Date = "datetime"; public static final String Char2 = "char(2)"; /** * 用于图片 */ public static final String Longblob = "longblob"; // public static final String Double2 = "decimal(17,2)"; public static final String TypePoint = "decimal(12,8)"; public static final String Type_Text = "text"; public static final String LONGTEXT = "LONGTEXT"; public static final int DefaultLength = 100; /** * 日期属性标示 * @return */ boolean date() default false; /** * 是否全部级联操作 * @return */ boolean cascadeAll() default true; /** * 更新时是否进行级联操作 * @return */ boolean cascadeUpdate() default true; /** * 删除时是否进行级联操作 * @return */ boolean cascadeDelete() default true; /** * 查询时是否进行级联操作 * @return */ boolean cascadeFind() default true; /** * 插入时是否进行级联操作 * @return */ boolean cascadeInsert() default true; /** * 是否映射,默认为true(映射) * @return */ boolean mapping() default true; /** * 是否可以为null * @return */ boolean canNull() default true; /** * 字段名称(默认用属性名) * * @return */ public String name() default DefaultValue; /** * 字段类型(默认参照对照表) * <table> * <tr><td>java</td><td>mysql 类型默认对照表</td></tr> * <tr><td>UUID</td><td>binary(16)</td></tr> * <tr><td>boolean</td><td>boolean</td></tr> * <tr><td>byte</td><td>binary</td></tr> * <tr><td>short</td><td>smallint</td></tr> * <tr><td>int</td><td>int</td></tr> * <tr><td>float</td><td>float</td></tr> * <tr><td>double</td><td>decimal(17,5)</td></tr> * <tr><td>String</td><td>nvarchar</td></tr> * <tr><td>long</td><td>bigint(20)</td></tr> * <tr><td>Date</td><td>datetime</td></tr> * </table> * * @return */ public String type() default DefaultValue; /** * 字段长度(默认100) * * @return */ public int length() default 100; /** * 是否是ID字段,不管是否是主键ID还是关联ID,被标识成ID的字段在数据库被自动转换成binary(16) * @return */ boolean id() default false; /** * 主键ID * @return */ boolean primaryId() default false; /** * 字段备注 * @return */ String comment() default ""; // =====default===== public String defaultStr() default DefaultValue; public int defaultInt() default 0; public long defaultLong() default 0; public double defaultDouble() default 0.0; }