diff --git a/docs/source/node-database.rst b/docs/source/node-database.rst
index e40c3bf520..2f078cbaf5 100644
--- a/docs/source/node-database.rst
+++ b/docs/source/node-database.rst
@@ -102,6 +102,10 @@ By default, the node database has the following tables:
+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| NODE_TRANSACTIONS | TX_ID, TRANSACTION_VALUE, STATE_MACHINE_RUN_ID |
+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| PK_HASH_TO_EXT_ID_MAP | ID, EXTERNAL_ID, PUBLIC_KEY_HASH |
++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| STATE_PARTY | OUTPUT_INDEX, TRANSACTION_ID, ID, PUBLIC_KEY_HASH, X500_NAME |
++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VAULT_FUNGIBLE_STATES | OUTPUT_INDEX, TRANSACTION_ID, ISSUER_NAME, ISSUER_REF, OWNER_NAME, QUANTITY |
+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VAULT_FUNGIBLE_STATES_PARTS | OUTPUT_INDEX, TRANSACTION_ID, PARTICIPANTS |
@@ -114,3 +118,5 @@ By default, the node database has the following tables:
+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| VAULT_TRANSACTION_NOTES | SEQ_NO, NOTE, TRANSACTION_ID |
+-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| V_PKEY_HASH_EX_ID_MAP | ID, PUBLIC_KEY_HASH, TRANSACTION_ID, OUTPUT_INDEX, EXTERNAL_ID |
++-----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
\ No newline at end of file
diff --git a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt
index 0cbaa360de..c7934a5c02 100644
--- a/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt
+++ b/node/src/main/kotlin/net/corda/node/services/keys/PersistentKeyManagementService.kt
@@ -11,6 +11,7 @@ import net.corda.nodeapi.internal.persistence.CordaPersistence
import net.corda.nodeapi.internal.persistence.NODE_DATABASE_PREFIX
import org.apache.commons.lang.ArrayUtils.EMPTY_BYTE_ARRAY
import org.bouncycastle.operator.ContentSigner
+import org.hibernate.annotations.Type
import java.security.KeyPair
import java.security.PrivateKey
import java.security.PublicKey
@@ -50,13 +51,14 @@ class PersistentKeyManagementService(cacheFactory: NamedCacheFactory, val identi
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
- var key: Long? = null,
+ val key: Long?,
@Column(name = "external_id", nullable = false)
- var externalId: UUID,
+ @Type(type = "uuid-char")
+ val externalId: UUID,
@Column(name = "public_key_hash", nullable = false)
- var publicKeyHash: String
+ val publicKeyHash: String
) {
constructor(accountId: UUID, publicKey: PublicKey)
: this(null, accountId, publicKey.toStringShort())
diff --git a/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt b/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt
index b2cf297557..586ea4bfdf 100644
--- a/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt
+++ b/node/src/main/kotlin/net/corda/node/services/vault/VaultSchema.kt
@@ -167,14 +167,14 @@ object VaultSchemaV1 : MappedSchema(
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
- var id: Long? = null,
+ val id: Long?,
// Foreign key.
@Column(name = "state_ref")
- var stateRef: PersistentStateRef,
+ val stateRef: PersistentStateRef,
@Column(name = "public_key_hash", nullable = false)
- var publicKeyHash: String,
+ val publicKeyHash: String,
@Column(name = "x500_name", nullable = true)
var x500Name: AbstractParty? = null
@@ -190,17 +190,18 @@ object VaultSchemaV1 : MappedSchema(
@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
- var id: Long? = null,
+ val id: Long,
// Foreign key.
@Column(name = "state_ref")
- var stateRef: PersistentStateRef,
+ val stateRef: PersistentStateRef,
@Column(name = "public_key_hash")
- var publicKeyHash: String,
+ val publicKeyHash: String,
@Column(name = "external_id")
- var externalId: UUID
+ @Type(type = "uuid-char")
+ val externalId: UUID
) : StatePersistable
}
diff --git a/node/src/main/resources/migration/vault-schema.changelog-v8.xml b/node/src/main/resources/migration/vault-schema.changelog-v8.xml
index 3f7adda2c2..b52eb27d92 100644
--- a/node/src/main/resources/migration/vault-schema.changelog-v8.xml
+++ b/node/src/main/resources/migration/vault-schema.changelog-v8.xml
@@ -6,17 +6,27 @@
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+