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 等。
我正在尝试使用 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 等。