public static class IOrmMeta.DefaultImpls
orm的元数据 模型映射表的映射元数据,如模型类/数据库/表名
关于 cascadeDeleted: 只对 hasOne/hasMany 有效, 对 belongsTo/hasOneThrough/hasManyThrough 无效 对 belongsTo, 你敢删除 belongsTo 关系的主对象? 对 hasOneThrough/hasManyThrough, 都通过中间表来关联了, 两者之间肯定是独立维护的, 只删除关联关系就好, 不删除关联对象
| 限定符和类型 | 方法和说明 |
|---|---|
static OrmMeta |
addRule(IOrmMeta $this,
java.lang.String field,
java.lang.String label,
java.lang.String rule,
NonExistentClass otherRule)
添加规则
|
static int[] |
batchDelete(IOrmMeta $this,
NonExistentClass pks)
批量删除
|
static IOrmMeta |
belongsTo(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
|
static IOrmMeta |
belongsTo(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.lang.String primaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
|
static IOrmMeta |
belongsTo(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
|
static boolean |
canHandleAnyEvent(IOrmMeta $this,
java.lang.String events)
能否处理任一事件(只是增删改, 不包含查)
|
static java.lang.String |
column2Prop(IOrmMeta $this,
java.lang.String column)
根据db字段名,获得对象属性名 -- 单个字段
|
static boolean |
deleteByPk(IOrmMeta $this,
java.lang.Object[] pks,
boolean withHasRelations)
根据主键值来删除数据
|
static boolean |
existByPk(IOrmMeta $this,
java.lang.Object pks)
检查是否存在主键值对应的数据
|
static boolean |
existByPk(IOrmMeta $this,
NonExistentClass pk)
根据主键值来查找数据
|
static <T extends IOrm> |
findByPk(IOrmMeta $this,
java.lang.Object pks)
根据主键值来查找数据
|
static IOrmMeta |
hasMany(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
|
static IOrmMeta |
hasMany(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.lang.String primaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
|
static IOrmMeta |
hasMany(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
|
static IOrmMeta |
hasManyThrough(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.lang.String primaryKey,
java.lang.String middleTable,
java.lang.String farForeignKey,
java.lang.String farPrimaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
|
static IOrmMeta |
hasManyThrough2LevelRelations(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String relationName1,
java.lang.String relationName2,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
通过2层关系来设置关联关系(has many)
|
static IOrmMeta |
hasOne(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
|
static IOrmMeta |
hasOne(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.lang.String primaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
|
static IOrmMeta |
hasOne(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean cascadeDeleted,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
|
static IOrmMeta |
hasOneThrough(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String foreignKey,
java.lang.String primaryKey,
java.lang.String middleTable,
java.lang.String farForeignKey,
java.lang.String farPrimaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
|
static IOrmMeta |
hasOneThrough2LevelRelations(IOrmMeta $this,
java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
java.lang.String relationName1,
java.lang.String relationName2,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
通过2层关系来设置关联关系(has one)
|
static boolean |
isPkEmpty(IOrmMeta $this,
java.lang.Object pk)
检查主键值是否为空
|
static boolean |
isSerializingProp(IOrmMeta $this,
java.lang.String prop)
熟悉是否需要序列化
|
static void |
loadByPk(IOrmMeta $this,
java.lang.Object[] pks,
IOrm item)
根据主键值来加载数据
|
static java.lang.String |
prop2Column(IOrmMeta $this,
java.lang.String prop)
根据对象属性名,获得db字段名 -- 单个字段
可根据实际需要在 model 类中重写
|
static void |
validateOrThrow(IOrmMeta $this,
IOrmEntity item)
校验数据
|
public static boolean isPkEmpty(IOrmMeta $this, java.lang.Object pk)
检查主键值是否为空
public static boolean isSerializingProp(IOrmMeta $this, java.lang.String prop)
熟悉是否需要序列化
public static java.lang.String prop2Column(IOrmMeta $this, java.lang.String prop)
根据对象属性名,获得db字段名 -- 单个字段 可根据实际需要在 model 类中重写
public static java.lang.String column2Prop(IOrmMeta $this, java.lang.String column)
根据db字段名,获得对象属性名 -- 单个字段
public static void validateOrThrow(IOrmMeta $this, IOrmEntity item)
校验数据
public static OrmMeta addRule(IOrmMeta $this, java.lang.String field, java.lang.String label, java.lang.String rule, NonExistentClass otherRule)
添加规则
public static boolean existByPk(IOrmMeta $this, java.lang.Object pks)
检查是否存在主键值对应的数据
public static boolean existByPk(IOrmMeta $this, NonExistentClass pk)
根据主键值来查找数据
public static boolean deleteByPk(IOrmMeta $this, java.lang.Object[] pks, boolean withHasRelations)
根据主键值来删除数据
public static int[] batchDelete(IOrmMeta $this, NonExistentClass pks)
批量删除
public static boolean canHandleAnyEvent(IOrmMeta $this, java.lang.String events)
能否处理任一事件(只是增删改, 不包含查)
public static IOrmMeta belongsTo(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
public static IOrmMeta hasOne(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasMany(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasOneThrough2LevelRelations(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String relationName1, java.lang.String relationName2, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
通过2层关系来设置关联关系(has one)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
如 hasOneThrough2LevelRelations("reportWorkflowPackage", ReportWorkflowPackage::class, "ReportProcess", "reportWorkflowPackage") // 通过2层关系来关联
public static IOrmMeta hasManyThrough2LevelRelations(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String relationName1, java.lang.String relationName2, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
通过2层关系来设置关联关系(has many)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
public static IOrmMeta belongsTo(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.lang.String primaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
public static IOrmMeta belongsTo(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
生成属性代理 + 设置关联关系(belongs to)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
public static IOrmMeta hasOne(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.lang.String primaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasOne(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasMany(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.lang.String primaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasMany(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean cascadeDeleted, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
public static IOrmMeta hasOneThrough(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.lang.String primaryKey, java.lang.String middleTable, java.lang.String farForeignKey, java.lang.String farPrimaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has one)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
public static IOrmMeta hasManyThrough(IOrmMeta $this, java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, java.lang.String foreignKey, java.lang.String primaryKey, java.lang.String middleTable, java.lang.String farForeignKey, java.lang.String farPrimaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
设置关联关系(has many)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表