public class MiddleRelationMeta
extends RelationMeta
有中间表的关联关系的元数据
特征 1 用中间表来存储两表的关联关系 2 两表对彼此都是hasMany/hasOne的关联关系
表结构是2个字段 1 foreignKey: 中间表.外键 = 主表.主键 2 farForeignKey: 中间表.远端外键 = 从表.远端主键
只涉及到2类的关联查询 只针对hasMany/hasOne 不考虑belongsTo
IRelationMeta.DefaultImpls| 构造器和说明 |
|---|
MiddleRelationMeta(IOrmMeta sourceMeta,
RelationType type,
kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> model,
NonExistentClass foreignKey,
NonExistentClass primaryKey,
java.lang.String middleTable,
NonExistentClass farForeignKey,
NonExistentClass farPrimaryKey,
java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
有中间表的关联关系的元数据
|
| 限定符和类型 | 方法和说明 |
|---|---|
OrmQueryBuilder |
buildQuery()
构建查询:通过join中间表来查询从表
|
NonExistentClass |
getFarForeignKey() |
NonExistentClass |
getFarForeignProp()
远端外键属性
与 farForeignKey 对应
|
NonExistentClass |
getFarPrimaryKey() |
NonExistentClass |
getFarPrimaryProp()
远端主键属性
与 farPrimaryKey 对应
|
NonExistentClass |
getMiddleForeignKey()
中间表的外键字段别名
用在 OrmQueryBuilder.findAll() 联查从表时,绑定主对象
不能使用foreignKey, 因为中间表的该字段可能与从表字段重名
|
NonExistentClass |
getMiddleForeignProp()
中间表的外键属性
与 middleForeignKey 对应
|
java.lang.String |
getMiddleTable() |
long |
insertMiddleTable(IOrm pk,
IOrm farPk)
插入中间表
|
long |
insertMiddleTable(java.lang.Object pk,
java.lang.Object farPk)
插入中间表
|
IDbQueryBuilder |
queryMiddleTable(IOrm item,
IOrm fkInMany)
查询中间表
|
IDbQueryBuilder |
queryMiddleTable(IOrm item,
java.lang.Object fkInMany)
查询中间表
|
OrmQueryBuilder |
queryRelated(IOrm item,
java.lang.Object fkInMany,
boolean withTableAlias)
查询从表
根据hasMany/hasOne的关联关系,来构建查询条件
|
OrmQueryBuilder |
queryRelated(java.util.Collection<? extends net.jkcode.jkmvc.orm.IOrm> items)
查询从表
根据hasMany/hasOne的关联关系,来构建查询条件
|
getConditions, getForeignKey, getForeignProp, getIntForeighKeyMustPositive, getModel, getModelRowTransformer, getOrmMeta, getPrimaryKey, getPrimaryProp, getSourceMeta, getStringForeighKeyMustNotEmpty, getType, isForeighKeyEmpty, newModelInstance, queryBuilder, queryRelated, queryRelated, queryRelated, queryRelated, queryRelatedgetConditions, getForeignKey, getForeignProp, getModel, getModelRowTransformer, getOrmMeta, getPrimaryKey, getPrimaryProp, getSourceMeta, getType, isForeighKeyEmpty, newModelInstance, queryBuilder, queryRelated, queryRelated, queryRelated, queryRelated, queryRelatedpublic MiddleRelationMeta(IOrmMeta sourceMeta, RelationType type, kotlin.reflect.KClass<? extends net.jkcode.jkmvc.orm.IOrm> model, NonExistentClass foreignKey, NonExistentClass primaryKey, java.lang.String middleTable, NonExistentClass farForeignKey, NonExistentClass farPrimaryKey, java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
有中间表的关联关系的元数据
特征 1 用中间表来存储两表的关联关系 2 两表对彼此都是hasMany/hasOne的关联关系
表结构是2个字段 1 foreignKey: 中间表.外键 = 主表.主键 2 farForeignKey: 中间表.远端外键 = 从表.远端主键
只涉及到2类的关联查询 只针对hasMany/hasOne 不考虑belongsTo
public NonExistentClass getFarPrimaryProp()
远端主键属性 与 farPrimaryKey 对应
public NonExistentClass getFarForeignProp()
远端外键属性 与 farForeignKey 对应
public NonExistentClass getMiddleForeignKey()
中间表的外键字段别名 用在 OrmQueryBuilder.findAll() 联查从表时,绑定主对象 不能使用foreignKey, 因为中间表的该字段可能与从表字段重名
public NonExistentClass getMiddleForeignProp()
中间表的外键属性 与 middleForeignKey 对应
public OrmQueryBuilder buildQuery()
构建查询:通过join中间表来查询从表
public IDbQueryBuilder queryMiddleTable(IOrm item, IOrm fkInMany)
查询中间表
public IDbQueryBuilder queryMiddleTable(IOrm item, java.lang.Object fkInMany)
查询中间表
public long insertMiddleTable(java.lang.Object pk,
java.lang.Object farPk)
插入中间表
public OrmQueryBuilder queryRelated(IOrm item, java.lang.Object fkInMany, boolean withTableAlias)
查询从表 根据hasMany/hasOne的关联关系,来构建查询条件
public OrmQueryBuilder queryRelated(java.util.Collection<? extends net.jkcode.jkmvc.orm.IOrm> items)
查询从表 根据hasMany/hasOne的关联关系,来构建查询条件
public java.lang.String getMiddleTable()
public NonExistentClass getFarForeignKey()
public NonExistentClass getFarPrimaryKey()