猿问

有没有办法在 Golang 中实现 cassandra“十进制”数据类型

我有一个设置为十进制的数据库字段,而在我的 Go 项目中,我在选择可以使用的数据类型时遇到问题。每次我向我的代码发送一个创建请求时,我都会得到一个“无法将'十进制'编组到#golang数据类型#


这是我的数据库架构


CREATE TABLE wage_garnishment(

organization_id timeuuid,

yyyy text,

employee_id timeuuid,

id timeuuid,

employee_name text,

amount decimal,

deductions int,

date_created date,

date_modified date,

date_approved date,

PRIMARY KEY ((organization_id, yyyy), id)

)


我的 golang 模型看起来像这样


type WageGarnishment struct {

ID            gocql.UUID `json:"id"`

organizationID            gocql.UUID `json:"organization_id"`

Yyyy          string     `json:"yyyy"`

Amount        Float64    `json:"amount"`

Deductions    uint       `json:"deductions"`

EffectiveDate time.Time  `json:"effective_date"`

DateCreated   time.Time  `json:"date_created"`

DateApproved  time.Time  `json:"date_approved"`

DateModified  time.Time  `json:"date_modified"`

EmployeeSummary

}


无论我的金额字段中的数据类型如何,我都会收到此错误:


Error #01: can not marshal float64 into decimal

提前感谢您的帮助


胡子哥哥
浏览 77回答 1
1回答

沧海一幻觉

如果您查看Gocql 包的文档,那么您将看到decimal映射到 Go 的infDec数据类型(请参阅其文档),因此您需要使用它而不是Float64.
随时随地看视频慕课网APP

相关分类

Go
我要回答