SharkORM - 如何解析连接结果

SharkORM - How to parse results of Joins

我正在尝试使用 SharkORM 来获取我的对象之间的关系。我熟悉 SharkORM 文档中定义的 joinTo syntax,但我不确定如何使用生成的 joinedResults 对象来获取我需要的相关对象。

[[Person query] joinTo:[Department class] leftParameter:@"department" targetParameter:@"Id"]

产出

{
    "Department.Id" = 61;
    "Department.location" = 35;
    "Department.name" = Development;
}

进入 Person.joinedResults 字段,但我如何获取这些结果并取回 Department 对象。我试过在 joinTo 之后调用 person.department,但它似乎对数据库进行了第二次查询,就好像我根本没有使用过 joinTo 一样。

我真的需要手动将 person.joinedResults 的字典结果解析为 Department 对象吗?这非常麻烦,尤其是当您开始加入多个关系时。

我觉得好像缺少一些明显的方法来使用 joinTo 的结果。

加入功能是对关系的补充。因此,您可以在查询中引用不相关(或相关)的表,但是您返回的对象只能按照原始 class 进行物理结构化,并且是根据数据而非查询定义的。

所以,简而言之shell; joinTo:将使您能够在查询中引用远程或不相关的对象以供选择。

但是要遍历对象关系,您将使用这些属性。

Person* p = GetFirstPerson()
// reference/traverse the object to look at relationships (1:1)
p.department

p.department.location

所以我想我的意思是,即使它是 SQL 之类的语法,你也只能以固定结构中严格定义的 classes 结束,除非使用其他接口,例如 sum、distinct 等。