mirror of
https://github.com/corda/corda.git
synced 2025-02-09 20:31:18 +00:00
CORDA-1297 - revert column nullability (#4030)
* CORDA-1297 revert column nullability * CORDA-1297 address code review comments * CORDA-1297 address code review comments
This commit is contained in:
parent
322700d973
commit
64fc9009a1
@ -4447,19 +4447,21 @@ public class net.corda.core.schemas.PersistentState extends java.lang.Object imp
|
|||||||
@Embeddable
|
@Embeddable
|
||||||
public class net.corda.core.schemas.PersistentStateRef extends java.lang.Object implements java.io.Serializable
|
public class net.corda.core.schemas.PersistentStateRef extends java.lang.Object implements java.io.Serializable
|
||||||
public <init>()
|
public <init>()
|
||||||
public <init>(String, int)
|
public <init>(String, Integer)
|
||||||
public <init>(net.corda.core.contracts.StateRef)
|
public <init>(net.corda.core.contracts.StateRef)
|
||||||
@NotNull
|
@Nullable
|
||||||
public final String component1()
|
public final String component1()
|
||||||
public final int component2()
|
@Nullable
|
||||||
|
public final Integer component2()
|
||||||
@NotNull
|
@NotNull
|
||||||
public final net.corda.core.schemas.PersistentStateRef copy(String, int)
|
public final net.corda.core.schemas.PersistentStateRef copy(String, Integer)
|
||||||
public boolean equals(Object)
|
public boolean equals(Object)
|
||||||
public int getIndex()
|
@Nullable
|
||||||
@NotNull
|
public Integer getIndex()
|
||||||
|
@Nullable
|
||||||
public String getTxId()
|
public String getTxId()
|
||||||
public int hashCode()
|
public int hashCode()
|
||||||
public void setIndex(int)
|
public void setIndex(Integer)
|
||||||
public void setTxId(String)
|
public void setTxId(String)
|
||||||
public String toString()
|
public String toString()
|
||||||
##
|
##
|
||||||
|
@ -54,7 +54,7 @@ object CommonSchemaV1 : MappedSchema(schemaFamily = CommonSchema.javaClass, vers
|
|||||||
/** [OwnableState] attributes */
|
/** [OwnableState] attributes */
|
||||||
|
|
||||||
/** X500Name of owner party **/
|
/** X500Name of owner party **/
|
||||||
@Column(name = "owner_name", nullable = true)
|
@Column(name = "owner_name")
|
||||||
var owner: AbstractParty,
|
var owner: AbstractParty,
|
||||||
|
|
||||||
/** [FungibleAsset] attributes
|
/** [FungibleAsset] attributes
|
||||||
@ -64,16 +64,16 @@ object CommonSchemaV1 : MappedSchema(schemaFamily = CommonSchema.javaClass, vers
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/** Amount attributes */
|
/** Amount attributes */
|
||||||
@Column(name = "quantity", nullable = false)
|
@Column(name = "quantity")
|
||||||
var quantity: Long,
|
var quantity: Long,
|
||||||
|
|
||||||
/** Issuer attributes */
|
/** Issuer attributes */
|
||||||
|
|
||||||
/** X500Name of issuer party **/
|
/** X500Name of issuer party **/
|
||||||
@Column(name = "issuer_name", nullable = true)
|
@Column(name = "issuer_name")
|
||||||
var issuer: AbstractParty,
|
var issuer: AbstractParty,
|
||||||
|
|
||||||
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuerRef: ByteArray
|
var issuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -57,11 +57,11 @@ open class MappedSchema(schemaFamily: Class<*>,
|
|||||||
*/
|
*/
|
||||||
@Embeddable
|
@Embeddable
|
||||||
data class PersistentStateRef(
|
data class PersistentStateRef(
|
||||||
@Column(name = "transaction_id", length = 64, nullable = false)
|
@Column(name = "transaction_id", length = 64)
|
||||||
var txId: String,
|
var txId: String? = null,
|
||||||
|
|
||||||
@Column(name = "output_index", nullable = false)
|
@Column(name = "output_index")
|
||||||
var index: Int
|
var index: Int? = null
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
constructor(stateRef: StateRef) : this(stateRef.txhash.bytes.toHexString(), stateRef.index)
|
constructor(stateRef: StateRef) : this(stateRef.txhash.bytes.toHexString(), stateRef.index)
|
||||||
}
|
}
|
||||||
|
@ -60,12 +60,6 @@ Unreleased
|
|||||||
* Fix CORDA-1229. Setter-based serialization was broken with generic types when the property was stored
|
* Fix CORDA-1229. Setter-based serialization was broken with generic types when the property was stored
|
||||||
as the raw type, List for example.
|
as the raw type, List for example.
|
||||||
|
|
||||||
* API change: ``net.corda.core.schemas.PersistentStateRef`` fields (index and txId) are now non-nullable.
|
|
||||||
The fields were always effectively non-nullable - values were set from non-nullable fields of other objects.
|
|
||||||
The class is used as database Primary Key columns of other entities and databases already impose those columns as non-nullable
|
|
||||||
(even if JPA annotation nullable=false was absent).
|
|
||||||
In case your Cordapps use this entity class to persist data in own custom tables as non Primary Key columns refer to :doc:`upgrade-notes` for upgrade instructions.
|
|
||||||
|
|
||||||
* Table name with a typo changed from ``NODE_ATTCHMENTS_CONTRACTS`` to ``NODE_ATTACHMENTS_CONTRACTS``.
|
* Table name with a typo changed from ``NODE_ATTCHMENTS_CONTRACTS`` to ``NODE_ATTACHMENTS_CONTRACTS``.
|
||||||
|
|
||||||
.. _changelog_v3.2:
|
.. _changelog_v3.2:
|
||||||
|
@ -33,40 +33,6 @@ UNRELEASED
|
|||||||
|
|
||||||
<<< Fill this in >>>
|
<<< Fill this in >>>
|
||||||
|
|
||||||
* API change: ``net.corda.core.schemas.PersistentStateRef`` fields (``index`` and ``txId``) incorrectly marked as nullable are now non-nullable,
|
|
||||||
:doc:`changelog` contains the explanation.
|
|
||||||
|
|
||||||
H2 database upgrade action:
|
|
||||||
|
|
||||||
For Cordapps persisting custom entities with ``PersistentStateRef`` used as non Primary Key column, the backing table needs to be updated,
|
|
||||||
In SQL replace ``your_transaction_id``/``your_output_index`` column names with your custom names, if entity didn't used JPA ``@AttributeOverrides``
|
|
||||||
then default names are ``transaction_id`` and ``output_index``.
|
|
||||||
|
|
||||||
.. sourcecode:: sql
|
|
||||||
|
|
||||||
SELECT count(*) FROM [YOUR_PersistentState_TABLE_NAME] WHERE your_transaction_id IS NULL OR your_output_index IS NULL;
|
|
||||||
|
|
||||||
In case your table already contains rows with NULL columns, and the logic doesn't distinguish between NULL and an empty string,
|
|
||||||
all NULL column occurrences can be changed to an empty string:
|
|
||||||
|
|
||||||
.. sourcecode:: sql
|
|
||||||
|
|
||||||
UPDATE [YOUR_PersistentState_TABLE_NAME] SET your_transaction_id="" WHERE your_transaction_id IS NULL;
|
|
||||||
UPDATE [YOUR_PersistentState_TABLE_NAME] SET your_output_index="" WHERE your_output_index IS NULL;
|
|
||||||
|
|
||||||
If all rows have NON NULL ``transaction_ids`` and ``output_idx`` or you have assigned empty string values, then it's safe to update the table:
|
|
||||||
|
|
||||||
.. sourcecode:: sql
|
|
||||||
|
|
||||||
ALTER TABLE [YOUR_PersistentState_TABLE_NAME] ALTER COLUMN your_transaction_id SET NOT NULL;
|
|
||||||
ALTER TABLE [YOUR_PersistentState_TABLE_NAME] ALTER COLUMN your_output_index SET NOT NULL;
|
|
||||||
|
|
||||||
If the table already contains rows with NULL values, and the logic caters differently between NULL and an empty string,
|
|
||||||
and the logic has to be preserved you would need to create copy of ``PersistentStateRef`` class with different name and use the new class in your entity.
|
|
||||||
|
|
||||||
No action is needed for default node tables as ``PersistentStateRef`` is used as Primary Key only and the backing columns are automatically not nullable
|
|
||||||
or custom Cordapp entities using ``PersistentStateRef`` as Primary Key.
|
|
||||||
|
|
||||||
v3.1 to v3.2
|
v3.1 to v3.2
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -26,19 +26,19 @@ object CashSchemaV1 : MappedSchema(schemaFamily = CashSchema.javaClass, version
|
|||||||
Index(name = "pennies_idx", columnList = "pennies")))
|
Index(name = "pennies_idx", columnList = "pennies")))
|
||||||
class PersistentCashState(
|
class PersistentCashState(
|
||||||
/** X500Name of owner party **/
|
/** X500Name of owner party **/
|
||||||
@Column(name = "owner_name", nullable = true)
|
@Column(name = "owner_name")
|
||||||
var owner: AbstractParty,
|
var owner: AbstractParty,
|
||||||
|
|
||||||
@Column(name = "pennies", nullable = false)
|
@Column(name = "pennies")
|
||||||
var pennies: Long,
|
var pennies: Long,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
@Column(name = "issuer_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "issuer_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var issuerPartyHash: String,
|
var issuerPartyHash: String,
|
||||||
|
|
||||||
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuerRef: ByteArray
|
var issuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -29,29 +29,29 @@ object CommercialPaperSchemaV1 : MappedSchema(schemaFamily = CommercialPaperSche
|
|||||||
Index(name = "maturity_index", columnList = "maturity_instant"),
|
Index(name = "maturity_index", columnList = "maturity_instant"),
|
||||||
Index(name = "face_value_index", columnList = "face_value")))
|
Index(name = "face_value_index", columnList = "face_value")))
|
||||||
class PersistentCommercialPaperState(
|
class PersistentCommercialPaperState(
|
||||||
@Column(name = "issuance_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "issuance_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var issuancePartyHash: String,
|
var issuancePartyHash: String,
|
||||||
|
|
||||||
@Column(name = "issuance_ref", nullable = false)
|
@Column(name = "issuance_ref")
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuanceRef: ByteArray,
|
var issuanceRef: ByteArray,
|
||||||
|
|
||||||
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var ownerHash: String,
|
var ownerHash: String,
|
||||||
|
|
||||||
@Column(name = "maturity_instant", nullable = false)
|
@Column(name = "maturity_instant")
|
||||||
var maturity: Instant,
|
var maturity: Instant,
|
||||||
|
|
||||||
@Column(name = "face_value", nullable = false)
|
@Column(name = "face_value")
|
||||||
var faceValue: Long,
|
var faceValue: Long,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var faceValueIssuerPartyHash: String,
|
var faceValueIssuerPartyHash: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var faceValueIssuerRef: ByteArray
|
var faceValueIssuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -25,19 +25,19 @@ object SampleCashSchemaV1 : MappedSchema(schemaFamily = CashSchema.javaClass, ve
|
|||||||
indexes = arrayOf(Index(name = "ccy_code_idx1", columnList = "ccy_code"),
|
indexes = arrayOf(Index(name = "ccy_code_idx1", columnList = "ccy_code"),
|
||||||
Index(name = "pennies_idx1", columnList = "pennies")))
|
Index(name = "pennies_idx1", columnList = "pennies")))
|
||||||
class PersistentCashState(
|
class PersistentCashState(
|
||||||
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var ownerHash: String,
|
var ownerHash: String,
|
||||||
|
|
||||||
@Column(name = "pennies", nullable = false)
|
@Column(name = "pennies")
|
||||||
var pennies: Long,
|
var pennies: Long,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
@Column(name = "issuer_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "issuer_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var issuerPartyHash: String,
|
var issuerPartyHash: String,
|
||||||
|
|
||||||
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuerRef: ByteArray
|
var issuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -16,7 +16,7 @@ object SampleCashSchemaV2 : MappedSchema(schemaFamily = CashSchema.javaClass, ve
|
|||||||
indexes = arrayOf(Index(name = "ccy_code_idx2", columnList = "ccy_code")))
|
indexes = arrayOf(Index(name = "ccy_code_idx2", columnList = "ccy_code")))
|
||||||
class PersistentCashState(
|
class PersistentCashState(
|
||||||
/** product type */
|
/** product type */
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
participants: Set<AbstractParty>,
|
participants: Set<AbstractParty>,
|
||||||
owner: AbstractParty,
|
owner: AbstractParty,
|
||||||
@ -26,7 +26,7 @@ object SampleCashSchemaV2 : MappedSchema(schemaFamily = CashSchema.javaClass, ve
|
|||||||
) : CommonSchemaV1.FungibleState(participants.toMutableSet(), owner, quantity, issuerParty, issuerRef.bytes) {
|
) : CommonSchemaV1.FungibleState(participants.toMutableSet(), owner, quantity, issuerParty, issuerRef.bytes) {
|
||||||
|
|
||||||
@ElementCollection
|
@ElementCollection
|
||||||
@Column(name = "participants", nullable = true)
|
@Column(name = "participants")
|
||||||
@CollectionTable(name="cash_states_v2_participants", joinColumns = arrayOf(
|
@CollectionTable(name="cash_states_v2_participants", joinColumns = arrayOf(
|
||||||
JoinColumn(name = "output_index", referencedColumnName = "output_index"),
|
JoinColumn(name = "output_index", referencedColumnName = "output_index"),
|
||||||
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")))
|
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")))
|
||||||
|
@ -26,20 +26,20 @@ object SampleCashSchemaV3 : MappedSchema(schemaFamily = CashSchema.javaClass, ve
|
|||||||
var participants: MutableSet<AbstractParty>? = null,
|
var participants: MutableSet<AbstractParty>? = null,
|
||||||
|
|
||||||
/** X500Name of owner party **/
|
/** X500Name of owner party **/
|
||||||
@Column(name = "owner_name", nullable = true)
|
@Column(name = "owner_name")
|
||||||
var owner: AbstractParty,
|
var owner: AbstractParty,
|
||||||
|
|
||||||
@Column(name = "pennies", nullable = false)
|
@Column(name = "pennies")
|
||||||
var pennies: Long,
|
var pennies: Long,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
/** X500Name of issuer party **/
|
/** X500Name of issuer party **/
|
||||||
@Column(name = "issuer_name", nullable = true)
|
@Column(name = "issuer_name")
|
||||||
var issuer: AbstractParty,
|
var issuer: AbstractParty,
|
||||||
|
|
||||||
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuerRef: ByteArray
|
var issuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -27,29 +27,29 @@ object SampleCommercialPaperSchemaV1 : MappedSchema(schemaFamily = CommercialPap
|
|||||||
Index(name = "maturity_index", columnList = "maturity_instant"),
|
Index(name = "maturity_index", columnList = "maturity_instant"),
|
||||||
Index(name = "face_value_index", columnList = "face_value")))
|
Index(name = "face_value_index", columnList = "face_value")))
|
||||||
class PersistentCommercialPaperState(
|
class PersistentCommercialPaperState(
|
||||||
@Column(name = "issuance_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "issuance_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var issuancePartyHash: String,
|
var issuancePartyHash: String,
|
||||||
|
|
||||||
@Column(name = "issuance_ref", nullable = false)
|
@Column(name = "issuance_ref")
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuanceRef: ByteArray,
|
var issuanceRef: ByteArray,
|
||||||
|
|
||||||
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "owner_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var ownerHash: String,
|
var ownerHash: String,
|
||||||
|
|
||||||
@Column(name = "maturity_instant", nullable = false)
|
@Column(name = "maturity_instant")
|
||||||
var maturity: Instant,
|
var maturity: Instant,
|
||||||
|
|
||||||
@Column(name = "face_value", nullable = false)
|
@Column(name = "face_value")
|
||||||
var faceValue: Long,
|
var faceValue: Long,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var faceValueIssuerPartyHash: String,
|
var faceValueIssuerPartyHash: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var faceValueIssuerRef: ByteArray
|
var faceValueIssuerRef: ByteArray
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
|
@ -21,16 +21,16 @@ object SampleCommercialPaperSchemaV2 : MappedSchema(schemaFamily = CommercialPap
|
|||||||
indexes = arrayOf(Index(name = "ccy_code_index2", columnList = "ccy_code"),
|
indexes = arrayOf(Index(name = "ccy_code_index2", columnList = "ccy_code"),
|
||||||
Index(name = "maturity_index2", columnList = "maturity_instant")))
|
Index(name = "maturity_index2", columnList = "maturity_instant")))
|
||||||
class PersistentCommercialPaperState(
|
class PersistentCommercialPaperState(
|
||||||
@Column(name = "maturity_instant", nullable = false)
|
@Column(name = "maturity_instant")
|
||||||
var maturity: Instant,
|
var maturity: Instant,
|
||||||
|
|
||||||
@Column(name = "ccy_code", length = 3, nullable = false)
|
@Column(name = "ccy_code", length = 3)
|
||||||
var currency: String,
|
var currency: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var faceValueIssuerPartyHash: String,
|
var faceValueIssuerPartyHash: String,
|
||||||
|
|
||||||
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "face_value_issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var faceValueIssuerRef: ByteArray,
|
var faceValueIssuerRef: ByteArray,
|
||||||
|
|
||||||
|
@ -25,25 +25,25 @@ object NodeInfoSchemaV1 : MappedSchema(
|
|||||||
class PersistentNodeInfo(
|
class PersistentNodeInfo(
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
@Column(name = "node_info_id", nullable = false)
|
@Column(name = "node_info_id")
|
||||||
var id: Int,
|
var id: Int,
|
||||||
|
|
||||||
@Column(name = "node_info_hash", length = 64, nullable = false)
|
@Column(name="node_info_hash", length = 64)
|
||||||
val hash: String,
|
val hash: String,
|
||||||
|
|
||||||
@Column(name = "addresses", nullable = false)
|
@Column(name = "addresses")
|
||||||
@OneToMany(cascade = arrayOf(CascadeType.ALL), orphanRemoval = true)
|
@OneToMany(cascade = arrayOf(CascadeType.ALL), orphanRemoval = true)
|
||||||
@JoinColumn(name = "node_info_id", foreignKey = ForeignKey(name = "FK__info_hosts__infos"))
|
@JoinColumn(name = "node_info_id", foreignKey = ForeignKey(name = "FK__info_hosts__infos"))
|
||||||
val addresses: List<DBHostAndPort>,
|
val addresses: List<DBHostAndPort>,
|
||||||
|
|
||||||
@Column(name = "legal_identities_certs", nullable = false)
|
@Column(name = "legal_identities_certs")
|
||||||
@ManyToMany(cascade = arrayOf(CascadeType.ALL))
|
@ManyToMany(cascade = arrayOf(CascadeType.ALL))
|
||||||
@JoinTable(name = "node_link_nodeinfo_party",
|
@JoinTable(name = "node_link_nodeinfo_party",
|
||||||
joinColumns = arrayOf(JoinColumn(name = "node_info_id", foreignKey = ForeignKey(name = "FK__link_nodeinfo_party__infos"))),
|
joinColumns = arrayOf(JoinColumn(name = "node_info_id", foreignKey = ForeignKey(name = "FK__link_nodeinfo_party__infos"))),
|
||||||
inverseJoinColumns = arrayOf(JoinColumn(name = "party_name", foreignKey = ForeignKey(name = "FK__link_ni_p__info_p_cert"))))
|
inverseJoinColumns = arrayOf(JoinColumn(name = "party_name", foreignKey = ForeignKey(name = "FK__link_ni_p__info_p_cert"))))
|
||||||
val legalIdentitiesAndCerts: List<DBPartyAndCertificate>,
|
val legalIdentitiesAndCerts: List<DBPartyAndCertificate>,
|
||||||
|
|
||||||
@Column(name = "platform_version", nullable = false)
|
@Column(name = "platform_version")
|
||||||
val platformVersion: Int,
|
val platformVersion: Int,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,7 +51,7 @@ object NodeInfoSchemaV1 : MappedSchema(
|
|||||||
* Not expected to be sequential, but later versions of the registration must have higher values
|
* Not expected to be sequential, but later versions of the registration must have higher values
|
||||||
* Similar to the serial number on DNS records.
|
* Similar to the serial number on DNS records.
|
||||||
*/
|
*/
|
||||||
@Column(name = "serial", nullable = false)
|
@Column(name = "serial")
|
||||||
val serial: Long
|
val serial: Long
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
fun toNodeInfo(): NodeInfo {
|
fun toNodeInfo(): NodeInfo {
|
||||||
@ -69,7 +69,7 @@ object NodeInfoSchemaV1 : MappedSchema(
|
|||||||
data class DBHostAndPort(
|
data class DBHostAndPort(
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
@Column(name = "hosts_id", nullable = false)
|
@Column(name = "hosts_id")
|
||||||
var id: Int,
|
var id: Int,
|
||||||
val host: String? = null,
|
val host: String? = null,
|
||||||
val port: Int? = null
|
val port: Int? = null
|
||||||
@ -95,11 +95,11 @@ object NodeInfoSchemaV1 : MappedSchema(
|
|||||||
@Column(name = "party_name", nullable = false)
|
@Column(name = "party_name", nullable = false)
|
||||||
val name: String,
|
val name: String,
|
||||||
|
|
||||||
@Column(name = "owning_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "owning_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
val owningKeyHash: String,
|
val owningKeyHash: String,
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "party_cert_binary", nullable = false)
|
@Column(name = "party_cert_binary")
|
||||||
val partyCertBinary: ByteArray,
|
val partyCertBinary: ByteArray,
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,13 +114,14 @@ class NodeSchedulerService(private val clock: CordaClock,
|
|||||||
toPersistentEntityKey = { PersistentStateRef(it.txhash.toString(), it.index) },
|
toPersistentEntityKey = { PersistentStateRef(it.txhash.toString(), it.index) },
|
||||||
fromPersistentEntity = {
|
fromPersistentEntity = {
|
||||||
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
||||||
val txId = it.output.txId
|
val txId = it.output.txId ?: throw IllegalStateException("DB returned null SecureHash transactionId")
|
||||||
val index = it.output.index
|
val index = it.output.index ?: throw IllegalStateException("DB returned null SecureHash index")
|
||||||
Pair(StateRef(SecureHash.parse(txId), index),
|
Pair(StateRef(SecureHash.parse(txId), index),
|
||||||
ScheduledStateRef(StateRef(SecureHash.parse(txId), index), it.scheduledAt))
|
ScheduledStateRef(StateRef(SecureHash.parse(txId), index), it.scheduledAt))
|
||||||
},
|
},
|
||||||
toPersistentEntity = { key: StateRef, value: ScheduledStateRef ->
|
toPersistentEntity = { key: StateRef, value: ScheduledStateRef ->
|
||||||
PersistentScheduledState(PersistentStateRef(key.txhash.toString(), key.index)).apply {
|
PersistentScheduledState().apply {
|
||||||
|
output = PersistentStateRef(key.txhash.toString(), key.index)
|
||||||
scheduledAt = value.scheduledAt
|
scheduledAt = value.scheduledAt
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -151,7 +152,7 @@ class NodeSchedulerService(private val clock: CordaClock,
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}scheduled_states")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}scheduled_states")
|
||||||
class PersistentScheduledState(
|
class PersistentScheduledState(
|
||||||
@EmbeddedId
|
@EmbeddedId
|
||||||
var output: PersistentStateRef,
|
var output: PersistentStateRef = PersistentStateRef(),
|
||||||
|
|
||||||
@Column(name = "scheduled_at", nullable = false)
|
@Column(name = "scheduled_at", nullable = false)
|
||||||
var scheduledAt: Instant = Instant.now()
|
var scheduledAt: Instant = Instant.now()
|
||||||
|
@ -69,11 +69,11 @@ class PersistentIdentityService(override val trustRoot: X509Certificate,
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}identities")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}identities")
|
||||||
class PersistentIdentity(
|
class PersistentIdentity(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "pk_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "pk_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var publicKeyHash: String = "",
|
var publicKeyHash: String = "",
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "identity_value", nullable = false)
|
@Column(name = "identity_value")
|
||||||
var identity: ByteArray = ByteArray(0)
|
var identity: ByteArray = ByteArray(0)
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
@ -81,10 +81,10 @@ class PersistentIdentityService(override val trustRoot: X509Certificate,
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}named_identities")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}named_identities")
|
||||||
class PersistentIdentityNames(
|
class PersistentIdentityNames(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "name", length = 128, nullable = false)
|
@Column(name = "name", length = 128)
|
||||||
var name: String = "",
|
var name: String = "",
|
||||||
|
|
||||||
@Column(name = "pk_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "pk_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var publicKeyHash: String = ""
|
var publicKeyHash: String = ""
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -33,15 +33,15 @@ class PersistentKeyManagementService(val identityService: IdentityService,
|
|||||||
class PersistentKey(
|
class PersistentKey(
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "public_key_hash", length = MAX_HASH_HEX_SIZE, nullable = false)
|
@Column(name = "public_key_hash", length = MAX_HASH_HEX_SIZE)
|
||||||
var publicKeyHash: String,
|
var publicKeyHash: String,
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "public_key", nullable = false)
|
@Column(name = "public_key")
|
||||||
var publicKey: ByteArray = ByteArray(0),
|
var publicKey: ByteArray = ByteArray(0),
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "private_key", nullable = false)
|
@Column(name = "private_key")
|
||||||
var privateKey: ByteArray = ByteArray(0)
|
var privateKey: ByteArray = ByteArray(0)
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
constructor(publicKey: PublicKey, privateKey: PrivateKey)
|
constructor(publicKey: PublicKey, privateKey: PrivateKey)
|
||||||
|
@ -202,15 +202,15 @@ class P2PMessagingClient(private val config: NodeConfiguration,
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}message_retry")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}message_retry")
|
||||||
class RetryMessage(
|
class RetryMessage(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "message_id", length = 64, nullable = false)
|
@Column(name = "message_id", length = 64)
|
||||||
var key: Long = 0,
|
var key: Long = 0,
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(nullable = false)
|
@Column
|
||||||
var message: ByteArray = ByteArray(0),
|
var message: ByteArray = ByteArray(0),
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(nullable = false)
|
@Column
|
||||||
var recipients: ByteArray = ByteArray(0)
|
var recipients: ByteArray = ByteArray(0)
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ class DBCheckpointStorage : CheckpointStorage {
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}checkpoints")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}checkpoints")
|
||||||
class DBCheckpoint(
|
class DBCheckpoint(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "checkpoint_id", length = 64, nullable = false)
|
@Column(name = "checkpoint_id", length = 64)
|
||||||
var checkpointId: String = "",
|
var checkpointId: String = "",
|
||||||
|
|
||||||
@Column(name = "checkpoint_value")
|
@Column(name = "checkpoint_value")
|
||||||
|
@ -29,10 +29,10 @@ class DBTransactionMappingStorage : StateMachineRecordedTransactionMappingStorag
|
|||||||
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}transaction_mappings")
|
@javax.persistence.Table(name = "${NODE_DATABASE_PREFIX}transaction_mappings")
|
||||||
class DBTransactionMapping(
|
class DBTransactionMapping(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "tx_id", length = 64, nullable = false)
|
@Column(name = "tx_id", length = 64)
|
||||||
var txId: String = "",
|
var txId: String = "",
|
||||||
|
|
||||||
@Column(name = "state_machine_run_id", length = 36, nullable = false)
|
@Column(name = "state_machine_run_id", length = 36)
|
||||||
var stateMachineRunId: String = ""
|
var stateMachineRunId: String = ""
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -30,11 +30,11 @@ class DBTransactionStorage(cacheSizeBytes: Long) : WritableTransactionStorage, S
|
|||||||
@Table(name = "${NODE_DATABASE_PREFIX}transactions")
|
@Table(name = "${NODE_DATABASE_PREFIX}transactions")
|
||||||
class DBTransaction(
|
class DBTransaction(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "tx_id", length = 64, nullable = false)
|
@Column(name = "tx_id", length = 64)
|
||||||
var txId: String = "",
|
var txId: String = "",
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "transaction_value", nullable = false)
|
@Column(name = "transaction_value")
|
||||||
var transaction: ByteArray = ByteArray(0)
|
var transaction: ByteArray = ByteArray(0)
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -75,24 +75,24 @@ class NodeAttachmentService(
|
|||||||
indexes = arrayOf(Index(name = "att_id_idx", columnList = "att_id")))
|
indexes = arrayOf(Index(name = "att_id_idx", columnList = "att_id")))
|
||||||
class DBAttachment(
|
class DBAttachment(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "att_id", nullable = false)
|
@Column(name = "att_id")
|
||||||
var attId: String,
|
var attId: String,
|
||||||
|
|
||||||
@Column(name = "content", nullable = false)
|
@Column(name = "content")
|
||||||
@Lob
|
@Lob
|
||||||
var content: ByteArray,
|
var content: ByteArray,
|
||||||
|
|
||||||
@Column(name = "insertion_date", nullable = false, updatable = false)
|
@Column(name = "insertion_date", nullable = false, updatable = false)
|
||||||
var insertionDate: Instant = Instant.now(),
|
var insertionDate: Instant = Instant.now(),
|
||||||
|
|
||||||
@Column(name = "uploader", updatable = false, nullable = true)
|
@Column(name = "uploader", updatable = false)
|
||||||
var uploader: String? = null,
|
var uploader: String? = null,
|
||||||
|
|
||||||
@Column(name = "filename", updatable = false, nullable = true)
|
@Column(name = "filename", updatable = false)
|
||||||
var filename: String? = null,
|
var filename: String? = null,
|
||||||
|
|
||||||
@ElementCollection
|
@ElementCollection
|
||||||
@Column(name = "contract_class_name", nullable = false)
|
@Column(name = "contract_class_name")
|
||||||
@CollectionTable(name = "${NODE_DATABASE_PREFIX}attachments_contracts", joinColumns = arrayOf(
|
@CollectionTable(name = "${NODE_DATABASE_PREFIX}attachments_contracts", joinColumns = arrayOf(
|
||||||
JoinColumn(name = "att_id", referencedColumnName = "att_id")),
|
JoinColumn(name = "att_id", referencedColumnName = "att_id")),
|
||||||
foreignKey = ForeignKey(name = "FK__ctr_class__attachments"))
|
foreignKey = ForeignKey(name = "FK__ctr_class__attachments"))
|
||||||
|
@ -30,10 +30,10 @@ class NodePropertiesPersistentStore(readPhysicalNodeId: () -> String, persistenc
|
|||||||
@Table(name = "${NODE_DATABASE_PREFIX}properties")
|
@Table(name = "${NODE_DATABASE_PREFIX}properties")
|
||||||
class DBNodeProperty(
|
class DBNodeProperty(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "property_key", nullable = false)
|
@Column(name = "property_key")
|
||||||
val key: String = "",
|
val key: String = "",
|
||||||
|
|
||||||
@Column(name = "property_value", nullable = true)
|
@Column(name = "property_value")
|
||||||
var value: String? = ""
|
var value: String? = ""
|
||||||
) : Serializable
|
) : Serializable
|
||||||
}
|
}
|
||||||
|
@ -107,8 +107,8 @@ class BFTNonValidatingNotaryService(
|
|||||||
toPersistentEntityKey = { PersistentStateRef(it.txhash.toString(), it.index) },
|
toPersistentEntityKey = { PersistentStateRef(it.txhash.toString(), it.index) },
|
||||||
fromPersistentEntity = {
|
fromPersistentEntity = {
|
||||||
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
||||||
val txId = it.id.txId
|
val txId = it.id.txId ?: throw IllegalStateException("DB returned null SecureHash transactionId")
|
||||||
val index = it.id.index
|
val index = it.id.index ?: throw IllegalStateException("DB returned null SecureHash index")
|
||||||
Pair(StateRef(txhash = SecureHash.parse(txId), index = index),
|
Pair(StateRef(txhash = SecureHash.parse(txId), index = index),
|
||||||
UniquenessProvider.ConsumingTx(
|
UniquenessProvider.ConsumingTx(
|
||||||
id = SecureHash.parse(it.consumingTxHash),
|
id = SecureHash.parse(it.consumingTxHash),
|
||||||
|
@ -29,12 +29,12 @@ class PersistentUniquenessProvider : UniquenessProvider, SingletonSerializeAsTok
|
|||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
open class PersistentUniqueness(
|
open class PersistentUniqueness(
|
||||||
@EmbeddedId
|
@EmbeddedId
|
||||||
var id: PersistentStateRef,
|
var id: PersistentStateRef = PersistentStateRef(),
|
||||||
|
|
||||||
@Column(name = "consuming_transaction_id", nullable = false)
|
@Column(name = "consuming_transaction_id")
|
||||||
var consumingTxHash: String = "",
|
var consumingTxHash: String = "",
|
||||||
|
|
||||||
@Column(name = "consuming_input_index", length = 36, nullable = false)
|
@Column(name = "consuming_input_index", length = 36)
|
||||||
var consumingIndex: Int = 0,
|
var consumingIndex: Int = 0,
|
||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@ -43,10 +43,10 @@ class PersistentUniquenessProvider : UniquenessProvider, SingletonSerializeAsTok
|
|||||||
|
|
||||||
@Embeddable
|
@Embeddable
|
||||||
data class PersistentParty(
|
data class PersistentParty(
|
||||||
@Column(name = "requesting_party_name", nullable = false)
|
@Column(name = "requesting_party_name")
|
||||||
var name: String = "",
|
var name: String = "",
|
||||||
|
|
||||||
@Column(name = "requesting_party_key", length = 255, nullable = false)
|
@Column(name = "requesting_party_key", length = 255)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var owningKey: ByteArray = ByteArray(0)
|
var owningKey: ByteArray = ByteArray(0)
|
||||||
) : Serializable
|
) : Serializable
|
||||||
@ -71,7 +71,8 @@ class PersistentUniquenessProvider : UniquenessProvider, SingletonSerializeAsTok
|
|||||||
fromPersistentEntity = {
|
fromPersistentEntity = {
|
||||||
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
//TODO null check will become obsolete after making DB/JPA columns not nullable
|
||||||
val txId = it.id.txId
|
val txId = it.id.txId
|
||||||
val index = it.id.index
|
?: throw IllegalStateException("DB returned null SecureHash transactionId")
|
||||||
|
val index = it.id.index ?: throw IllegalStateException("DB returned null SecureHash index")
|
||||||
Pair(StateRef(txhash = SecureHash.parse(txId), index = index),
|
Pair(StateRef(txhash = SecureHash.parse(txId), index = index),
|
||||||
UniquenessProvider.ConsumingTx(
|
UniquenessProvider.ConsumingTx(
|
||||||
id = SecureHash.parse(it.consumingTxHash),
|
id = SecureHash.parse(it.consumingTxHash),
|
||||||
|
@ -75,14 +75,14 @@ class RaftUniquenessProvider(private val transportConfiguration: NodeSSLConfigur
|
|||||||
@Table(name = "${NODE_DATABASE_PREFIX}raft_committed_states")
|
@Table(name = "${NODE_DATABASE_PREFIX}raft_committed_states")
|
||||||
class RaftState(
|
class RaftState(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "id", nullable = false)
|
@Column(name = "id")
|
||||||
var key: String = "",
|
var key: String = "",
|
||||||
|
|
||||||
@Lob
|
@Lob
|
||||||
@Column(name = "state_value", nullable = false)
|
@Column(name = "state_value")
|
||||||
var value: ByteArray = ByteArray(0),
|
var value: ByteArray = ByteArray(0),
|
||||||
|
|
||||||
@Column(name = "state_index", nullable = false)
|
@Column(name = "state_index")
|
||||||
var index: Long = 0
|
var index: Long = 0
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -18,11 +18,11 @@ class ContractUpgradeServiceImpl : ContractUpgradeService, SingletonSerializeAsT
|
|||||||
@Table(name = "${NODE_DATABASE_PREFIX}contract_upgrades")
|
@Table(name = "${NODE_DATABASE_PREFIX}contract_upgrades")
|
||||||
class DBContractUpgrade(
|
class DBContractUpgrade(
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "state_ref", length = 96, nullable = false)
|
@Column(name = "state_ref", length = 96)
|
||||||
var stateRef: String = "",
|
var stateRef: String = "",
|
||||||
|
|
||||||
/** refers to the UpgradedContract class name*/
|
/** refers to the UpgradedContract class name*/
|
||||||
@Column(name = "contract_class_name", nullable = false)
|
@Column(name = "contract_class_name")
|
||||||
var upgradedContractClassName: String = ""
|
var upgradedContractClassName: String = ""
|
||||||
) : Serializable
|
) : Serializable
|
||||||
|
|
||||||
|
@ -36,19 +36,19 @@ object VaultSchemaV1 : MappedSchema(schemaFamily = VaultSchema.javaClass, versio
|
|||||||
// TODO: create a distinct table to hold serialized state data (once DBTransactionStore is encrypted)
|
// TODO: create a distinct table to hold serialized state data (once DBTransactionStore is encrypted)
|
||||||
|
|
||||||
/** refers to the X500Name of the notary a state is attached to */
|
/** refers to the X500Name of the notary a state is attached to */
|
||||||
@Column(name = "notary_name", nullable = false)
|
@Column(name = "notary_name")
|
||||||
var notary: Party,
|
var notary: Party,
|
||||||
|
|
||||||
/** references a concrete ContractState that is [QueryableState] and has a [MappedSchema] */
|
/** references a concrete ContractState that is [QueryableState] and has a [MappedSchema] */
|
||||||
@Column(name = "contract_state_class_name", nullable = false)
|
@Column(name = "contract_state_class_name")
|
||||||
var contractStateClassName: String,
|
var contractStateClassName: String,
|
||||||
|
|
||||||
/** state lifecycle: unconsumed, consumed */
|
/** state lifecycle: unconsumed, consumed */
|
||||||
@Column(name = "state_status", nullable = false)
|
@Column(name = "state_status")
|
||||||
var stateStatus: Vault.StateStatus,
|
var stateStatus: Vault.StateStatus,
|
||||||
|
|
||||||
/** refers to timestamp recorded upon entering UNCONSUMED state */
|
/** refers to timestamp recorded upon entering UNCONSUMED state */
|
||||||
@Column(name = "recorded_timestamp", nullable = false)
|
@Column(name = "recorded_timestamp")
|
||||||
var recordedTime: Instant,
|
var recordedTime: Instant,
|
||||||
|
|
||||||
/** refers to timestamp recorded upon entering CONSUMED state */
|
/** refers to timestamp recorded upon entering CONSUMED state */
|
||||||
@ -87,7 +87,7 @@ object VaultSchemaV1 : MappedSchema(schemaFamily = VaultSchema.javaClass, versio
|
|||||||
/**
|
/**
|
||||||
* Represents a [LinearState] [UniqueIdentifier]
|
* Represents a [LinearState] [UniqueIdentifier]
|
||||||
*/
|
*/
|
||||||
@Column(name = "external_id", nullable = true)
|
@Column(name = "external_id")
|
||||||
var externalId: String?,
|
var externalId: String?,
|
||||||
|
|
||||||
@Column(name = "uuid", nullable = false)
|
@Column(name = "uuid", nullable = false)
|
||||||
@ -112,13 +112,13 @@ object VaultSchemaV1 : MappedSchema(schemaFamily = VaultSchema.javaClass, versio
|
|||||||
JoinColumn(name = "output_index", referencedColumnName = "output_index"),
|
JoinColumn(name = "output_index", referencedColumnName = "output_index"),
|
||||||
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")),
|
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")),
|
||||||
foreignKey = ForeignKey(name = "FK__fung_st_parts__fung_st"))
|
foreignKey = ForeignKey(name = "FK__fung_st_parts__fung_st"))
|
||||||
@Column(name = "participants", nullable = true)
|
@Column(name = "participants")
|
||||||
var participants: MutableSet<AbstractParty>? = null,
|
var participants: MutableSet<AbstractParty>? = null,
|
||||||
|
|
||||||
/** [OwnableState] attributes */
|
/** [OwnableState] attributes */
|
||||||
|
|
||||||
/** X500Name of owner party **/
|
/** X500Name of owner party **/
|
||||||
@Column(name = "owner_name", nullable = true)
|
@Column(name = "owner_name")
|
||||||
var owner: AbstractParty,
|
var owner: AbstractParty,
|
||||||
|
|
||||||
/** [FungibleAsset] attributes
|
/** [FungibleAsset] attributes
|
||||||
@ -128,16 +128,16 @@ object VaultSchemaV1 : MappedSchema(schemaFamily = VaultSchema.javaClass, versio
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/** Amount attributes */
|
/** Amount attributes */
|
||||||
@Column(name = "quantity", nullable = false)
|
@Column(name = "quantity")
|
||||||
var quantity: Long,
|
var quantity: Long,
|
||||||
|
|
||||||
/** Issuer attributes */
|
/** Issuer attributes */
|
||||||
|
|
||||||
/** X500Name of issuer party **/
|
/** X500Name of issuer party **/
|
||||||
@Column(name = "issuer_name", nullable = true)
|
@Column(name = "issuer_name")
|
||||||
var issuer: AbstractParty,
|
var issuer: AbstractParty,
|
||||||
|
|
||||||
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE, nullable = false)
|
@Column(name = "issuer_ref", length = MAX_ISSUER_REF_SIZE)
|
||||||
@Type(type = "corda-wrapper-binary")
|
@Type(type = "corda-wrapper-binary")
|
||||||
var issuerRef: ByteArray
|
var issuerRef: ByteArray
|
||||||
) : PersistentState() {
|
) : PersistentState() {
|
||||||
@ -156,13 +156,13 @@ object VaultSchemaV1 : MappedSchema(schemaFamily = VaultSchema.javaClass, versio
|
|||||||
class VaultTxnNote(
|
class VaultTxnNote(
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
@Column(name = "seq_no", nullable = false)
|
@Column(name = "seq_no")
|
||||||
var seqNo: Int,
|
var seqNo: Int,
|
||||||
|
|
||||||
@Column(name = "transaction_id", length = 64, nullable = false)
|
@Column(name = "transaction_id", length = 64)
|
||||||
var txId: String,
|
var txId: String,
|
||||||
|
|
||||||
@Column(name = "note", nullable = false)
|
@Column(name = "note")
|
||||||
var note: String
|
var note: String
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
constructor(txId: String, note: String) : this(0, txId, note)
|
constructor(txId: String, note: String) : this(0, txId, note)
|
||||||
|
@ -33,7 +33,7 @@ object DummyLinearStateSchemaV1 : MappedSchema(schemaFamily = DummyLinearStateSc
|
|||||||
/**
|
/**
|
||||||
* UniqueIdentifier
|
* UniqueIdentifier
|
||||||
*/
|
*/
|
||||||
@Column(name = "external_id", nullable = true)
|
@Column(name = "external_id")
|
||||||
var externalId: String?,
|
var externalId: String?,
|
||||||
|
|
||||||
@Column(name = "uuid", nullable = false)
|
@Column(name = "uuid", nullable = false)
|
||||||
@ -43,16 +43,16 @@ object DummyLinearStateSchemaV1 : MappedSchema(schemaFamily = DummyLinearStateSc
|
|||||||
/**
|
/**
|
||||||
* Dummy attributes
|
* Dummy attributes
|
||||||
*/
|
*/
|
||||||
@Column(name = "linear_string", nullable = false)
|
@Column(name = "linear_string")
|
||||||
var linearString: String,
|
var linearString: String,
|
||||||
|
|
||||||
@Column(name = "linear_number", nullable = false)
|
@Column(name = "linear_number")
|
||||||
var linearNumber: Long,
|
var linearNumber: Long,
|
||||||
|
|
||||||
@Column(name = "linear_timestamp", nullable = false)
|
@Column(name = "linear_timestamp")
|
||||||
var linearTimestamp: Instant,
|
var linearTimestamp: Instant,
|
||||||
|
|
||||||
@Column(name = "linear_boolean", nullable = false)
|
@Column(name = "linear_boolean")
|
||||||
var linearBoolean: Boolean
|
var linearBoolean: Boolean
|
||||||
) : PersistentState()
|
) : PersistentState()
|
||||||
}
|
}
|
||||||
|
@ -23,13 +23,13 @@ object DummyLinearStateSchemaV2 : MappedSchema(schemaFamily = DummyLinearStateSc
|
|||||||
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")))
|
JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id")))
|
||||||
override var participants: MutableSet<AbstractParty>? = null,
|
override var participants: MutableSet<AbstractParty>? = null,
|
||||||
|
|
||||||
@Column(name = "linear_string", nullable = false) var linearString: String,
|
@Column(name = "linear_string") var linearString: String,
|
||||||
|
|
||||||
@Column(name = "linear_number", nullable = false) var linearNumber: Long,
|
@Column(name = "linear_number") var linearNumber: Long,
|
||||||
|
|
||||||
@Column(name = "linear_timestamp", nullable = false) var linearTimestamp: java.time.Instant,
|
@Column(name = "linear_timestamp") var linearTimestamp: java.time.Instant,
|
||||||
|
|
||||||
@Column(name = "linear_boolean", nullable = false) var linearBoolean: Boolean,
|
@Column(name = "linear_boolean") var linearBoolean: Boolean,
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
val uid: UniqueIdentifier
|
val uid: UniqueIdentifier
|
||||||
|
Loading…
x
Reference in New Issue
Block a user