【问题标题】:Nested Models in Loopback Android SDKLoopback Android SDK 中的嵌套模型
【发布时间】:2016-04-15 06:24:07
【问题描述】:

我有一个带有 MongoDB 后端的环回实例,并定义了一个模型,该模型具有一个名为“位置”的嵌套(匿名)模型作为属性:

  "name": "thing",
  "plural": "things",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "title": {
      "type": "string",
      "required": true
    },
    "description": {
      "type": "string"
    },
    "location": {
      "lat": {
         "type": "string"
      },
      "lng": {
         "type": "string"
      }
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

在我的 android 项目中,我使用 loopback sdk 将所有“事物”模型获取到从 loopback 模型类扩展的 thing.java 类的实例中。

ThingRepository repository = restAdapter.createRepository(Thing.class);
    repository.findAll(/* callback code ommitted */)

public class Thing extends Model {
    private String id;
    private String title;
    private String description;
    private Location location;
    /* getters/setters removed */
  }

当我从服务器获取所有“东西”时,它们看起来都很好,除了嵌套的“位置”始终为空。我已经验证我可以从 loopback 的 REST apis 中获取东西,并且位置正确填充。但似乎环回客户端不会反序列化并填充“位置”。 “位置”是一个简单的 java 类,只有 2 个整数(纬度和经度)。我也尝试让它从“模型”扩展,但它仍然返回为空。

public class Location extends Model {
    private String lat;
    private String lng;
    /* getters/setters removed */
}

有什么想法吗?

【问题讨论】:

    标签: android mongodb loopbackjs strongloop


    【解决方案1】:

    This functionnality does not seem to be supported at the moment.

    一旦我们用支持自定义注释的适当库替换我们的手写 JSON 解析器,我们应该希望免费获得它

    与此同时,一个简单的解决方案是创建一个location 模型,添加一个thing HasOne location 关系,并使用“api/thing/{id}/location”端点。

    或者您可以 fork the project,更改 JSON 解析库并发出拉取请求。这取决于你;)

    编辑:或者,您可能已经想到了一个更简单的解决方案,删除嵌套对象并使用两个经典属性 location_lat location_lng

    【讨论】:

    • 非常感谢您提供的信息,我认为您是对的。我将把它打开一段时间,然后将您的答案设置为解决方案。
    • 我添加了另一个解决方案,更简单
    【解决方案2】:

    我只更改了几行sdk,现在它可以递归解析所有嵌套模型

    compile 'com.github.farruxx:loopback-sdk-android:v1.6.3'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多