java Corda:如何将AndComposition与Vault CustomQueryCriteria一起使用
我使用RPC客户端(JavaSpringBoot应用程序)连接到Corda4.6节点
我要使用以下查询条件运行自定义vault查询:
QueryCriteria stateStatusCriteria = new VaultQueryCriteria(StateStatus.ALL);
QueryCriteria myFieldCriteria = new VaultCustomQueryCriteria(
Builder.equal(getField("myField", PersistentMyState.class), myValue)
);
return stateStatusCriteria.and(myFieldCriteria);
// Also tried: return myFieldCriteria.and(stateStatusCriteria);
这与Corda documentation中的示例非常相似
然而,我只是检索UNCONSUMED
状态。这里会出什么问题
以下代码段正在工作,但我需要一个AndComposition
,因为我想稍后添加更多自定义条件:
QueryCriteria myFieldCriteria = new VaultCustomQueryCriteria(
Builder.equal(getField("myField", PersistentMyState.class), myValue),
StateStatus.ALL
);
return myFieldCriteria ;
此外,任何关于如何在Corda中激活Hibernate日志的提示都将不胜感激。我在Kubernetes集群和PostgreSQL数据库中运行的corda/corda-zulu-java1.8-4.6:RELEASE
映像中使用自定义CorDapps
# 1 楼答案
**更新**
默认情况下
VaultCustomQueryCriteria
在its constructor中设置stateStatus = UNCONSUMED
:因此,如果您没有传递StateStatus,查询将始终返回
UNCONSUMED
状态,并且如果您还有CONSUMED
状态,Hibernate的and()
谓词将不起作用。 github上还有一个类似的问题。 因此,基本上您的第一个代码片段应该如下所示:要激活Hibernate logger,您必须更新cordapp中的
log4j.xml
文件以添加Hibernate配置,可能类似以下内容: