我有一个这样的专栏:
val notNullableAmount = compositeMoney(DECIMAL_PRECISION,
DECIMAL_SCALE,
"principal_sum",
"principal_sum_currency")在本例中,我可以将MonetaryAmount类型的值赋值给列,如下所示:
it[notNullableAmount] = ggnCollectionDocument.principalSum!!但是,当我使用nullable()时,比如:
val principalSum = compositeMoney(DECIMAL_PRECISION,
DECIMAL_SCALE,
"principal_sum",
"principal_sum_currency").nullable()那么我就不能再分配MonetaryAmount了。它抱怨了一些通用的错误消息:
None of the following functions can be called with the arguments supplied.
set(Column<TypeVariable(ID)>, TypeVariable(E)) where S = TypeVariable(S), ID = TypeVariable(ID), E = TypeVariable(E) for fun <S, ID : EntityID<S>, E : Expression<S>> set(column: Column<ID>, value: E): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement
set(Column<TypeVariable(ID)>, TypeVariable(S)) where S = TypeVariable(S), E = TypeVariable(E), ID = TypeVariable(ID) for fun <S : Comparable<S>, E : S, ID : EntityID<E>?> set(column: Column<ID>, value: S): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement
set(Column<TypeVariable(S)>, TypeVariable(S)) where S = TypeVariable(S) for fun <S> set(column: Column<S>, value: S): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement
set(Column<TypeVariable(S)>, Query) where S = TypeVariable(S) for fun <S> set(column: Column<S>, value: Query): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement
set(Column<TypeVariable(T)>, TypeVariable(E)) where T = TypeVariable(T), S = TypeVariable(S), E = TypeVariable(E) for fun <T, S : T, E : Expression<S>> set(column: Column<T>, value: E): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement
set(CompositeColumn<TypeVariable(S)>, TypeVariable(S)) where S = TypeVariable(S) for fun <S : Any> set(column: CompositeColumn<S>, value: S): Unit defined in org.jetbrains.exposed.sql.statements.InsertStatement发布于 2022-02-24 13:14:13
在表的声明中:
val principalSum = (compositeMoney(DECIMAL_PRECISION,
DECIMAL_SCALE,
"principal_sum",
"principal_sum_currency").nullable()) as CompositeMoneyColumn<*, *, MonetaryAmount?>在用法上:
it[principalSum] = ggnCollectionDocument.principalSum与过载操作员:
private operator fun InsertStatement<*>.set(column: CompositeMoneyColumn<*,*,MonetaryAmount?>, value: MonetaryAmount?) {
val insertStatement = this
insertStatement.set(column.amount as Column<BigDecimal?>, value?.number?.numberValue(BigDecimal::class.java))
insertStatement.set(column.currency as Column<CurrencyUnit?>, value?.currency)
}https://stackoverflow.com/questions/71248852
复制相似问题