corda - 在 Corda 的 H2 数据库中,我们需要提供自己的索引吗?
问题描述
我们使用的是默认的 H2 节点数据库。我们需要提供自己的数据库索引,还是由 Corda 自己创建?
解决方案
使用 H2 时,索引是使用 JPA 注释自动配置的。例如,Corda 为表创建索引,如下vault_linear_states
所示:
@Entity
@Table(name = "vault_linear_states", indexes = arrayOf(
Index(name = "external_id_index", columnList = "external_id"),
Index(name = "uuid_index", columnList = "uuid")))
class VaultLinearStates(
在定义您自己的状态模式时,您可以为它们提供索引。例如,我们可以在Example CorDapp中为 IOU 表添加索引,如下所示:
@Entity
@Table(name = "iou_states", indexes = [Index(name="lender_idx", columnList = "lender")])
class PersistentIOU(
@Column(name = "lender")
var lenderName: String,
@Column(name = "borrower")
var borrowerName: String,
@Column(name = "value")
var value: Int,
@Column(name = "linear_id")
var linearId: UUID
) : PersistentState()
推荐阅读
- r - 是否有任何 R 函数可以将链接的值可视化为节点内的文本?
- python-3.x - 使用 panda python 使用多个 csv 文件时,绘图图未更正
- python - 如何为 sum() 准备价格清单
- java - 如何在 Java SSL 中启用特定的签名算法
- java - 谷歌地图 MapsView 泄露
- php - 如何在 Symfony 3.4 (PHP) 中注册 Google OAuth 包
- reporting-services - 在 SSRS Tablix 中呈现 HTML 标签
- javascript - 我们如何禁用输入类型 =“日期”中的 dd-mm-yyyy 字段,以便只接受选定的日期
- karate - 使用 karate.forEach 和 karate.set 从 json 数组中提取值的索引
- javascript - Firebase 网络将聊天存储为实时数据库中的数组