public IOrmMeta
orm的元数据 模型映射表的映射元数据,如模型类/数据库/表名
关于 cascadeDeleted: 只对 hasOne/hasMany 有效, 对 belongsTo/hasOneThrough/hasManyThrough 无效 对 belongsTo, 你敢删除 belongsTo 关系的主对象? 对 hasOneThrough/hasManyThrough, 都通过中间表来关联了, 两者之间肯定是独立维护的, 只删除关联关系就好, 不删除关联对象
| 限定符和类型 | 接口和说明 |
|---|---|
static class |
IOrmMeta.DefaultImpls
orm的元数据
模型映射表的映射元数据,如模型类/数据库/表名
|
| 限定符和类型 | 方法和说明 |
|---|---|
OrmMeta |
addRule(java.lang.String field,
java.lang.String label,
java.lang.String rule,
NonExistentClass otherRule)
添加规则
|
OrmMeta |
addRule(java.lang.String field,
net.jkcode.jkutil.validator.IValidator rule)
添加规则
|
int[] |
batchDelete(java.lang.Object pks)
批量删除
|
int[] |
batchDelete(NonExistentClass pks)
批量删除
|
int[] |
batchInsert(java.util.List<? extends net.jkcode.jkmvc.orm.IOrmEntity> items)
批量插入
一般用于批量插入 OrmEntity 对象, 而不是 Orm 对象, 因此也不会触发 Orm 中的前置后置事件
|
int[] |
batchUpdate(java.util.List<? extends net.jkcode.jkmvc.orm.IOrmEntity> items)
批量更新
一般用于批量更新 OrmEntity 对象, 而不是 Orm 对象, 因此也不会触发 Orm 中的前置后置事件
|
IOrmMeta |
belongsTo(java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
NonExistentClass 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)
|
IOrmMeta |
belongsTo(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)
|
IOrmMeta |
belongsTo(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)
|
IOrmMeta |
belongsTo(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)
|
boolean |
canHandleAnyEvent(java.lang.String events)
能否处理任一事件(只是增删改, 不包含查)
|
<M extends IOrm,K,R> |
cbHasMany(java.lang.String name,
kotlin.jvm.functions.Function1<? super M,? extends K> pkGetter,
kotlin.jvm.functions.Function1<? super R,? extends K> fkGetter,
kotlin.jvm.functions.Function1<? super java.util.List<?extendsK>,? extends java.util.List<?extendsR>> relatedSupplier)
设置通过回调动态获得对象的关联关系(has many)
|
<M extends IOrm,K,R> |
cbHasOne(java.lang.String name,
kotlin.jvm.functions.Function1<? super M,? extends K> pkGetter,
kotlin.jvm.functions.Function1<? super R,? extends K> fkGetter,
kotlin.jvm.functions.Function1<? super java.util.List<?extendsK>,? extends java.util.List<?extendsR>> relatedSupplier)
设置通过回调动态获得对象的关联关系(has one)
|
java.lang.String |
column2Prop(java.lang.String column)
根据db字段名,获得对象属性名 -- 单个字段
|
java.lang.Object |
convertIntelligent(java.lang.String column,
java.lang.String value)
智能转换字段值
在不知字段类型的情况下,将string赋值给属性
=> 需要将string转换为属性类型
=> 需要显式声明属性
|
boolean |
deleteByPk(java.lang.Object[] pks,
boolean withHasRelations)
根据主键值来删除数据
|
boolean |
deleteByPk(NonExistentClass pk,
boolean withHasRelations)
根据主键值来删除数据
|
boolean |
existByPk(java.lang.Object pks)
检查是否存在主键值对应的数据
|
boolean |
existByPk(NonExistentClass pk)
根据主键值来查找数据
|
<T extends IOrm> |
findByPk(java.lang.Object pks)
根据主键值来查找数据
|
<T extends IOrm> |
findByPk(NonExistentClass pk)
根据主键值来查找数据
|
OrmCacheMeta |
getCacheMeta()
缓存配置
|
ICbRelation<? extends net.jkcode.jkmvc.orm.IOrm,?,?> |
getCbRelation(java.lang.String name)
获得某个回调的关联关系
|
java.util.Collection<java.lang.String> |
getColumns()
表字段
|
java.lang.String |
getCreatedByNameProp()
创建人名
|
java.lang.String |
getCreatedByProp()
创建人id
|
java.lang.String |
getCreatedDateProp()
创建时间
|
net.jkcode.jkutil.collection.FixedKeyMapFactory |
getDataFactory()
数据的工厂
|
IDb |
getDb()
数据库
|
java.util.Map<java.lang.String,net.jkcode.jkmvc.db.DbColumn> |
getDbColumns()
db列
|
java.lang.String |
getDbName()
数据库名
|
DbTable |
getDbTable()
db表
|
NonExistentClass |
getDefaultForeignKey()
默认外键
|
CompiledSql |
getDeleteSqlByPk()
根据主键删除的sql
|
java.util.List<java.lang.String> |
getEmptyToNullForeignProps()
如果是空字符串转为null的外键属性
|
java.lang.Class<?> |
getEntityClass()
获得实体类: 模型类实现 IEntitiableOrm 接口时, 指定的泛型类型
|
java.util.List<net.jkcode.jkmvc.orm.relation.IRelation> |
getHasNOrThroughRelations()
hasN关联关系
|
CompiledSql |
getInsertSql(java.util.Collection<java.lang.String> insertProps)
获得插入的sql
|
java.lang.String |
getLabel()
模型中文名
|
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> |
getModel()
模型类
|
java.lang.String |
getModifiedByNameProp()
修改人名
|
java.lang.String |
getModifiedByProp()
修改人id
|
java.lang.String |
getModifiedDateProp()
修改时间
|
java.lang.String |
getName()
模型名
|
<T extends IOrm> |
getOrPutCache(NonExistentClass pk,
T item,
long expires)
读缓存, 无则读db
|
PkEmptyRule |
getPkEmptyRule()
检查主键为空的规则
|
NonExistentClass |
getPrimaryKey()
主键
|
NonExistentClass |
getPrimaryProp()
主键属性
|
java.util.List<java.lang.String> |
getProcessableEvents()
能处理的事件(只是增删改, 不包含查)
|
java.util.List<java.lang.String> |
getProps()
对象属性名
|
java.util.List<java.lang.String> |
getPropsAndRelations()
对象属性名+关系名
|
IRelation |
getRelation(java.lang.String name)
获得某个关联关系
|
java.util.Map<java.lang.String,net.jkcode.jkmvc.orm.relation.IRelation> |
getRelations()
关联关系
|
java.util.Map<java.lang.String,net.jkcode.jkutil.validator.IValidator> |
getRules()
每个字段的规则
|
CompiledSql |
getSelectSqlByPk()
根据主键查询的sql
|
java.util.List<java.lang.String> |
getSerializingProps()
要序列化的对象属性
写时序列化, 读时反序列化
|
java.lang.String |
getTable()
表名
|
CompiledSql |
getUpdateSql(java.util.Collection<java.lang.String> updateProps)
获得更新的sql
|
boolean |
hasCbRelation(java.lang.String name)
是否有某个回调的关联关系
|
IOrmMeta |
hasMany(java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
NonExistentClass 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)
|
IOrmMeta |
hasMany(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)
|
IOrmMeta |
hasMany(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)
|
IOrmMeta |
hasMany(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)
|
IOrmMeta |
hasManyThrough(java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
NonExistentClass primaryKey,
java.lang.String middleTable,
NonExistentClass farForeignKey,
NonExistentClass 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)
|
IOrmMeta |
hasManyThrough(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)
|
IOrmMeta |
hasManyThrough2LevelRelations(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)
|
IOrmMeta |
hasOne(java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
NonExistentClass 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)
|
IOrmMeta |
hasOne(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)
|
IOrmMeta |
hasOne(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)
|
IOrmMeta |
hasOne(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)
|
IOrmMeta |
hasOneThrough(java.lang.String name,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel,
NonExistentClass foreignKey,
NonExistentClass primaryKey,
java.lang.String middleTable,
NonExistentClass farForeignKey,
NonExistentClass 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)
|
IOrmMeta |
hasOneThrough(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)
|
IOrmMeta |
hasOneThrough2LevelRelations(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)
|
boolean |
hasRelation(java.lang.String name)
是否有某个关联关系
|
com.thoughtworks.xstream.XStream |
initXStream(boolean modelNameAsAlias)
初始化xstream, 入口
|
boolean |
isPkEmpty(java.lang.Object pk)
检查主键值是否为空
|
boolean |
isSerializingProp(java.lang.String prop)
熟悉是否需要序列化
|
IRelation |
joinRelated(OrmQueryBuilder query,
java.lang.CharSequence name,
boolean select,
SelectColumnList columns,
java.lang.CharSequence lastName,
java.lang.String path,
kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
联查关联表
|
void |
loadByPk(java.lang.Object[] pks,
IOrm item)
根据主键值来加载数据
|
void |
loadByPk(NonExistentClass pk,
IOrm item)
根据主键值来加载数据
|
IOrm |
newInstance()
创建实例
使用无参数构造函数/可变参数构造参数来实例化
|
java.lang.String |
prop2Column(java.lang.String prop)
根据对象属性名,获得db字段名 -- 单个字段
可根据实际需要在 model 类中重写
|
void |
removeCache(IOrm item)
根据主键值来删除缓存
|
void |
setTable(java.lang.String p)
表名
|
<T> T |
transactionWhenHandlingEvent(java.lang.String events,
boolean withHasRelations,
kotlin.jvm.functions.Function0<? extends T> statement)
如果有要处理的事件(只是增删改, 不包含查),则开启事务
|
NonExistentClass |
validate(IOrmEntity item)
校验orm对象数据
|
void |
validateOrThrow(IOrmEntity item)
校验数据
|
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> getModel()
模型类
java.lang.String getName()
模型名
java.lang.String getLabel()
模型中文名
java.lang.String getDbName()
数据库名
java.lang.String getTable()
表名
void setTable(java.lang.String p)
表名
NonExistentClass getPrimaryKey()
主键
NonExistentClass getPrimaryProp()
主键属性
NonExistentClass getDefaultForeignKey()
默认外键
java.util.Map<java.lang.String,net.jkcode.jkmvc.orm.relation.IRelation> getRelations()
关联关系
java.util.Map<java.lang.String,net.jkcode.jkutil.validator.IValidator> getRules()
每个字段的规则
java.lang.Class<?> getEntityClass()
获得实体类: 模型类实现 IEntitiableOrm 接口时, 指定的泛型类型
IDb getDb()
数据库
DbTable getDbTable()
db表
java.util.Map<java.lang.String,net.jkcode.jkmvc.db.DbColumn> getDbColumns()
db列
PkEmptyRule getPkEmptyRule()
检查主键为空的规则
java.util.Collection<java.lang.String> getColumns()
表字段
java.util.List<java.lang.String> getProps()
对象属性名
java.util.List<java.lang.String> getPropsAndRelations()
对象属性名+关系名
java.util.List<java.lang.String> getSerializingProps()
要序列化的对象属性 写时序列化, 读时反序列化
java.util.List<java.lang.String> getEmptyToNullForeignProps()
如果是空字符串转为null的外键属性
java.lang.String getCreatedDateProp()
创建时间
java.lang.String getCreatedByProp()
创建人id
java.lang.String getCreatedByNameProp()
创建人名
java.lang.String getModifiedDateProp()
修改时间
java.lang.String getModifiedByProp()
修改人id
java.lang.String getModifiedByNameProp()
修改人名
net.jkcode.jkutil.collection.FixedKeyMapFactory getDataFactory()
数据的工厂
boolean isPkEmpty(java.lang.Object pk)
检查主键值是否为空
boolean isSerializingProp(java.lang.String prop)
熟悉是否需要序列化
java.lang.String prop2Column(java.lang.String prop)
根据对象属性名,获得db字段名 -- 单个字段 可根据实际需要在 model 类中重写
java.lang.String column2Prop(java.lang.String column)
根据db字段名,获得对象属性名 -- 单个字段
java.lang.Object convertIntelligent(java.lang.String column,
java.lang.String value)
智能转换字段值 在不知字段类型的情况下,将string赋值给属性 => 需要将string转换为属性类型 => 需要显式声明属性
IOrm newInstance()
创建实例 使用无参数构造函数/可变参数构造参数来实例化
OrmCacheMeta getCacheMeta()
缓存配置
<T extends IOrm> T getOrPutCache(NonExistentClass pk, T item, long expires)
读缓存, 无则读db
void removeCache(IOrm item)
根据主键值来删除缓存
NonExistentClass validate(IOrmEntity item)
校验orm对象数据
void validateOrThrow(IOrmEntity item)
校验数据
OrmMeta addRule(java.lang.String field, java.lang.String label, java.lang.String rule, NonExistentClass otherRule)
添加规则
OrmMeta addRule(java.lang.String field, net.jkcode.jkutil.validator.IValidator rule)
添加规则
CompiledSql getSelectSqlByPk()
根据主键查询的sql
CompiledSql getDeleteSqlByPk()
根据主键删除的sql
CompiledSql getInsertSql(java.util.Collection<java.lang.String> insertProps)
获得插入的sql
CompiledSql getUpdateSql(java.util.Collection<java.lang.String> updateProps)
获得更新的sql
void loadByPk(java.lang.Object[] pks,
IOrm item)
根据主键值来加载数据
void loadByPk(NonExistentClass pk,
IOrm item)
根据主键值来加载数据
<T extends IOrm> T findByPk(java.lang.Object pks)
根据主键值来查找数据
<T extends IOrm> T findByPk(NonExistentClass pk)
根据主键值来查找数据
boolean existByPk(java.lang.Object pks)
检查是否存在主键值对应的数据
boolean existByPk(NonExistentClass pk)
根据主键值来查找数据
boolean deleteByPk(java.lang.Object[] pks,
boolean withHasRelations)
根据主键值来删除数据
boolean deleteByPk(NonExistentClass pk,
boolean withHasRelations)
根据主键值来删除数据
int[] batchInsert(java.util.List<? extends net.jkcode.jkmvc.orm.IOrmEntity> items)
批量插入 一般用于批量插入 OrmEntity 对象, 而不是 Orm 对象, 因此也不会触发 Orm 中的前置后置事件
int[] batchUpdate(java.util.List<? extends net.jkcode.jkmvc.orm.IOrmEntity> items)
批量更新 一般用于批量更新 OrmEntity 对象, 而不是 Orm 对象, 因此也不会触发 Orm 中的前置后置事件
int[] batchDelete(java.lang.Object pks)
批量删除
int[] batchDelete(NonExistentClass pks)
批量删除
IRelation joinRelated(OrmQueryBuilder query, java.lang.CharSequence name, boolean select, SelectColumnList columns, java.lang.CharSequence lastName, java.lang.String path, kotlin.jvm.functions.Function2<? super net.jkcode.jkmvc.orm.OrmQueryBuilder,? super java.lang.Boolean,kotlin.Unit> queryAction)
联查关联表
java.util.List<java.lang.String> getProcessableEvents()
能处理的事件(只是增删改, 不包含查)
boolean canHandleAnyEvent(java.lang.String events)
能否处理任一事件(只是增删改, 不包含查)
<T> T transactionWhenHandlingEvent(java.lang.String events,
boolean withHasRelations,
kotlin.jvm.functions.Function0<? extends T> statement)
如果有要处理的事件(只是增删改, 不包含查),则开启事务
java.util.List<net.jkcode.jkmvc.orm.relation.IRelation> getHasNOrThroughRelations()
hasN关联关系
boolean hasRelation(java.lang.String name)
是否有某个关联关系
IRelation getRelation(java.lang.String name)
获得某个关联关系
IOrmMeta belongsTo(java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, NonExistentClass 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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
IOrmMeta belongsTo(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
IOrmMeta hasOne(java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, NonExistentClass 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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasOne(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasMany(java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, NonExistentClass 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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasMany(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasOneThrough(java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, NonExistentClass primaryKey, java.lang.String middleTable, NonExistentClass farForeignKey, NonExistentClass 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)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
IOrmMeta hasOneThrough2LevelRelations(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层关系来关联
IOrmMeta hasManyThrough(java.lang.String name, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> relatedModel, NonExistentClass foreignKey, NonExistentClass primaryKey, java.lang.String middleTable, NonExistentClass farForeignKey, NonExistentClass 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)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
IOrmMeta hasManyThrough2LevelRelations(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)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
IOrmMeta belongsTo(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
IOrmMeta belongsTo(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键 (= 关联表_主键) 主键默认值 = 主表的主键 (= 关联表的主键)
其中本表从属于关联表,因此 本表是从表,关联表是主表
IOrmMeta hasOne(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasOne(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasMany(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasMany(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)
公式:从表.外键 = 主表.主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键)
其中本表有一个关联表,因此 本表是主表,关联表是从表
IOrmMeta hasOneThrough(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)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
IOrmMeta hasManyThrough(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)
公式:中间表.外键 = 主表.主键 中间表.远端外键 = 远端主表.远端主键 外键默认值 = 主表_主键(= 本表_主键) 主键默认值 = 主表的主键(= 本表的主键) 中间表默认值 = 主表_从表 远端外键默认值 = 远端主表_主键(= 从表_主键) 远端主键默认值 = 远端主表的主键(= 从表的主键)
其中本表有一个关联表,因此 本表是主表,中间表与关联表是从表
boolean hasCbRelation(java.lang.String name)
是否有某个回调的关联关系
ICbRelation<? extends net.jkcode.jkmvc.orm.IOrm,?,?> getCbRelation(java.lang.String name)
获得某个回调的关联关系
<M extends IOrm,K,R> IOrmMeta cbHasOne(java.lang.String name, kotlin.jvm.functions.Function1<? super M,? extends K> pkGetter, kotlin.jvm.functions.Function1<? super R,? extends K> fkGetter, kotlin.jvm.functions.Function1<? super java.util.List<?extendsK>,? extends java.util.List<?extendsR>> relatedSupplier)
设置通过回调动态获得对象的关联关系(has one)
<M extends IOrm,K,R> IOrmMeta cbHasMany(java.lang.String name, kotlin.jvm.functions.Function1<? super M,? extends K> pkGetter, kotlin.jvm.functions.Function1<? super R,? extends K> fkGetter, kotlin.jvm.functions.Function1<? super java.util.List<?extendsK>,? extends java.util.List<?extendsR>> relatedSupplier)
设置通过回调动态获得对象的关联关系(has many)
com.thoughtworks.xstream.XStream initXStream(boolean modelNameAsAlias)
初始化xstream, 入口