Corda持久性API
我正在阅读有关Corda Persistence的文档,我有几点不清楚Corda持久性API,corda,Corda,我正在阅读有关Corda Persistence的文档,我有几点不清楚 数据的持久化与vault存储并行,对吗。即,不会更改vault存储,也会添加新表以存储数据 当我们使用 cordaRPCClient.vaultQueryBymethod它自己是否知道该使用什么:vault或保存在自定义数据库表中的数据 例如,当表格中只有部分数据可用时,如何进行选择?有没有办法明确地告诉Corda应该将持久化数据用于查询 以下是您的问题的答案: 是的,您是正确的,将在vault中创建与您的Queryable
cordaRPCClient.vaultQueryBy
method它自己是否知道该使用什么:vault或保存在自定义数据库表中的数据以下是您的问题的答案:
cordarpclient.vaultQueryBy
将始终在vault中查询ContractState
,而不是PersistentState
。但是,您可以使用jdbc会话/jpa查询自定义数据库表ContractState
中工作以下是您的问题的答案:
cordarpclient.vaultQueryBy
将始终在vault中查询ContractState
,而不是PersistentState
。但是,您可以使用jdbc会话/jpa查询自定义数据库表ContractState
中工作非常感谢你,阿舒托什!这很有帮助!您是否知道是否有任何文档证实cordaRPCClient.vaultQueryBy始终查询ContractState而不是PersistedState?所有vaulyQuery方法变体最终都会调用_queryBy方法。它需要一个ContractState类型的参数,该参数表示正在查询的状态。我检查了您提供的链接,但我没有看到在执行vaultQueryBy方法时未使用持久性的明确确认。相反,我看到了以下文本:
Vault Query API利用了Corda采用的基于JPA Hibernate的持久性框架的丰富语义。
因此,我感到困惑。我的意思是,对于Vault Query,您需要指定要查询的状态,它始终是ContractState而不是PersistState(可查询状态的持久表示,即JPA实体)。话虽如此,如果您配置了PersistentState,Vault Query可以利用它来根据PersistentState字段筛选结果,但是返回的结果始终是ContractState。非常感谢Ashutosh!这非常有用!您是否知道有任何文档证实了这一事实t cordaRPCClient.vaultQueryBy always query ContractState和not PersistedState?所有vaulyQuery方法变体最终都会调用_queryBy方法。它需要一个ContractState类型的参数,它表示正在查询的状态。我检查了您提供的链接,但我没有看到在执行时没有使用持久性的明确确认ng vaultQueryBy方法。相反,我看到了以下文本:Vault查询API利用了Corda采用的基于JPA Hibernate的持久化框架的丰富语义。
因此,我感到困惑。我的意思是,对于vaultQuery,您需要指定要查询的状态,它始终是ContractState而不是Persist状态(可查询状态(即JPA实体)的持久表示形式)。如上所述,如果您配置了PersistentState,Vault Query可以利用它根据PersistentState字段过滤结果,但是返回的结果始终是ContractState。