Search code examples
gohyperledger-fabrichyperledger-chaincode

GetStateByPartialCompositeKey by a specific key not working


Currently I'm working with Hyperledger chaincode, I have a problem with the method "GetStateByPartialCompositeKey". They index consists of 3 parts (key1~key2~key3). If i try GetStateByPartialCompositeKey(index, key1) , it works perfectly. But If I try to search for another key, like GetStateByPartialCompositeKey(index, key3), nothing is returned. Although the key is actually saved. How do I solve this problem?


Solution

  • Refer: https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStub.GetStateByPartialCompositeKey

    As mentioned in the description of the method, "This function returns an iterator which can be used to iterate over all composite keys whose prefix matches the given partial composite key."

    This method needs to have the prefix i.e. the first half of the composite key to match. Even though the method name may state partial key, it only works with the prefix of the composite key and not any part of it.