当前位置: 首页 > 知识库问答 >
问题:

资产上的Hyperledger Fabric Java富查询

索正豪
2023-03-14

我需要帮助hyperledger Fabric中的getQueryResult()函数。我知道我可以这样使用它:

    String queryHash;
QueryResultsIterator<KeyValue> results = stub.getQueryResult("{\"selector\":{\"hash\":\"" + queryHash + "\"}}");

共有1个答案

萧德馨
2023-03-14

为什么要查询单个对象?

我不知道你的链码型号,但假设你有某种身份,它会是这样的:

String id;
String queryHash;
// ...
QueryResultsIterator<KeyValue> results = stub.getQueryResult("{\"selector\":{\"id\":\"" + id + "\"" + ", " + "\"hash\":\"" + queryHash + "\" }}");

如果您可以访问它的CouchDB密钥,那么您可以简单地获取对象,并在反序列化时检查哈希:

String couchdbKey;
// ...
byte[] ba = stub.getState​(couchdbKey);
// Deserialize ba and check hash

我想你应该重构你的模型。我通常在Go中开发链码,但在Java中可能类似于(检查代码,它是动态编写的):


public abstract class Asset {

    @Property()
    private String doctype;

    @Property()
    private String id;

    protected Asset(String doctype) {
        this.doctype = doctype;
    }

    public String getDoctype() {
        return doctype;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    // ...
}

@DataType()
public class Car extends Asset {
    public static final String DOCTYPE = "car";

    public Car() {
        super(Car.DOCTYPE);
    }

    // ...
}

然后,可以在doctype上查询每个模型。您最好为doctype创建一个索引。

 类似资料:
  • 一面30min 1.自我介绍 2.为什么选择富途 3.对富途有什么了解 4.喜欢富途牛牛什么功能 5.对b和c的理解 6.怎么判断需求优先级 7.如果接到不合理的需求,该怎么去处理 8.如果你觉得需求不合理,但老板坚持做,怎么办 整体产品问题还是挺专业#非技术2024笔面经#

  • 分享一下面试问题: 1.介绍一个实习经历,这块就是深挖了简历里面的,针对我的回答不停的反问,这里大家一定要好好准备,按照stat原则去说 2.是否有需求但是没有办法推进的时候?怎么处理的? 3.遇到最大的困难与挑战? 4.职业规划? 5.描述自己的特质(性格)? 6.对富途的了解 7.反问 #产品面经#

  • 我知道我将文本文件放在了assets\chat1的位置。txt,我的代码也可以与其他txt一起使用,但不知何故,我总是遇到以下错误: 发生异常。 错误(无法加载资产:assets/chat1.txt) 我的代码: pubspec.yaml

  • 我正试图通过linkedin v2资产api上传视频。在以“SINGLE_REQUEST_UPLOAD”的形式上传视频后,在尝试获取资产状态时,我得到了403的响应。 我也用和标题尝试了相同的请求。谁能帮助解决这个问题。

  • 1.英文自我介绍(留学生,所以希望英文好) 2.围绕我的简历做了一些问题,在澳门大学主修什么,澳门和内地的生活有哪些不同? 3.为什么想做产品经理? 4.觉得自己和产品经理的岗位哪里比较匹配? 5.项目介绍,遇到了哪些困难在项目之中? 6.想做2b 还是2c 7.对富途有了解吗 8.为富途设计一个AI功能 可以从2b 2c两个角度分析,你会怎么设计,把AI功能融入到哪里 9.因为我的经历是2b,所

  • 从iOS 13开始,具有以下功能: 然而,资产目录没有任何方式添加“字体资产”。 我试过的: 在此处取字体(后记名称为)。 在资产目录中创建了名为的数据资产。 将字体文件重命名为并将其放入数据资产。 数据资产的现在如下所示: 尝试通过加载此字体 像这样: 在此之后,打印: 有什么办法让它起作用吗?