具有OneToMany映射的线性状态。

问题描述 投票:0回答:1

我有一个从LinearState和QueryableState派生出来的状态,这个状态与状态中的一个属性有一个OneToMany映射。该状态与该状态中的一个属性有一个OneToMany映射。添加一个OneToMany标记了一个Unique约束的键。

当我试图消耗和创建一个新的这样的状态时(保持线性ID不变),这个Unique键被违反了,因为corda将所有消耗的& 未消耗的状态存储在同一个表中。

如何在corda中建模?

corda
1个回答
1
投票

你可以使用JoinColumns与output_index和transaction_id,如下所示。这些值总是不同的,因为任何更新都需要一个新的事务。

@JoinColumns({
        @JoinColumn(name = "output_index", referencedColumnName = "output_index"),
        @JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"),
})

这里有一篇博客解释了Corda中的层次关系。

https:/medium.comcordaimplementing-hierarchical-relationship-with-corda-queryablestate15049fed5934。

© www.soinside.com 2019 - 2024. All rights reserved.