Вот схема со значением по умолчанию для одного из полей, value
:
object IOUSchemaV1 : MappedSchema(
schemaFamily = IOUSchema.javaClass,
version = 1,
mappedTypes = listOf(PersistentIOU::class.java)) {
@Entity
@Table(name = "iou_states")
class PersistentIOU(
@Column(name = "lender")
var lenderName: String,
@Column(name = "borrower")
var borrowerName: String,
@Column(name = "linear_id")
var linearId: UUID,
@Column(name = "value")
var value: Int = 93
) : PersistentState() {
// Default constructor required by hibernate.
constructor(): this("", "", UUID.randomUUID(), 0)
}
}
Если вы не предоставите значение для этого поля, тогда значение по умолчанию 93
будет использоваться.Например:
override fun generateMappedObject(schema: MappedSchema): PersistentState {
return when (schema) {
is IOUSchemaV1 -> IOUSchemaV1.PersistentIOU(
this.lender.name.toString(),
this.borrower.name.toString(),
this.linearId.id
)
else -> throw IllegalArgumentException("Unrecognised schema $schema")
}
}