我有一个专栏是这样的:
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
2条答案
按热度按时间pgccezyw1#
在表的声明中:
并且在用法上:
对于超载机操作员:
ddhy6vgd2#
一个稍微简单一点的解决方法可能是按照建议定义可空列:
然后使用下面的扩展函数: