-3

我一直在尝试将此语句从 C# 转换为 JAVA,但运气不佳。是的,我搜索了 Azure、stackoverflow 等,但在 java 中找不到 READDOCUMENT 的好例子。

 UserInfo response = _DocumentClient.ReadDocument<UserInfo>(UriFactory.CreateDocumentUri(_DBConfiguration.DatabaseID, _DBConfiguration.DocumentCollectionId, pPhoneNumber));

这是据我所知:

UserInfo returnUserInfo = null;
        try { 

            //todo: document link is incorrect, but reference  pPhoneNumber as key
            ResourceResponse<Document> response = _DocumentClient.readDocument(<<NEED To generate URI>>,null);
            if (response != null) {
                Document returnUserInfoDocument = response.getResource();
                returnUserInfo = <<I have a document, but can't cast it to USERINFO>>;
            }
        }
        catch (DocumentClientException ex) {
            if (!ex.getError().getCode().equals("NotFound")) {
                throw ex;
            }

        }

        return returnUserInfo;
4

2 回答 2

0

如果您只是想了解如何使用 Azure DocumentDB SDK for Java 访问 DocumentDB,可以参考GitHub 上的教程Azure Cosmos DB: Build a DocumentDB API app with Java and the Azure portal和 README 内容。azure-documentdb-java

希望能帮助到你。任何问题,请随时告诉我。

于 2017-07-20T07:45:41.713 回答
0

我个人没有使用 Java SDK 的经验,但通过谷歌搜索发现了这一点。这个 repo 中有很多使用示例。

您正在努力处理的部分是生成文档 URI。似乎在 C# 中,这通过一些为您构建字符串的工厂方法被抽象了一点,但您可以在链接的示例中看到,在 Java 中等效的是:

String documentLink = String.format("/dbs/%s/colls/%s/docs/%s", databaseName, collectionName, family.getId());
this.client.readDocument(documentLink, new RequestOptions());

因此,在您的情况下,您只需使用电话号码字段(或这种格式的文档 ID 以及文档和集合 ID。

至于将响应转换为 UserInfo,您可以将响应视为 JSON 字符串,并使用您选择的 JSON 反序列化库为您完成工作。在 C# 中我们使用 Newtonsoft,但在 Java 中必须有很多选项。只需尝试谷歌搜索java json deserialize,我相信您将能够找到很多资源。

只是为了记录,我没有对你的问题投反对票,但我可以理解人们为什么这样做,也许你可以借此机会成长。我从字面上输入documentdb java了谷歌,前两个链接是充满代码示例的 GitHub 存储库。在期望其他人为您进行研究之前,您应该尝试更加努力地搜索。

于 2017-07-20T01:33:35.127 回答