不支持的扫描,将 driver.Value 类型 []uint8 存储到类型 *guid.GUID 中。

huangapple go评论83阅读模式
英文:

Unsupported Scan, storing driver.Value type []uint8 into type *guid.GUID

问题

我使用Golang和SQL Server进行工作。
我的Golang结构体如下:

type Role struct {
    Id          guid.GUID `gorm:"primaryKey;column:Id;type:uniqueidentifier" json:"id"`
    RoleName    string    `gorm:"column:RoleName;not null;unique" json:"roleName"`
    IsEnable    bool      `gorm:"column:IsEnable" json:"isEnable"`
    Permissions []RolePermission
}

我使用gorm查询数据时遇到了错误:

不支持的Scan操作,将driver.Value类型的[]uint8存储到类型为*guid.GUID的字段中。

我之前使用过uuid,但在查询时id数据出错(从guid转换为uuid)。

是否有任何方法可以在Golang和SQL Server中存储和处理Guid?

英文:

I work with Golang and SQL Server.
My struct in Golang:

type Role struct {
Id          guid.GUID `gorm:"primaryKey;column:Id;type:uniqueidentifier" json:"id"`
RoleName    string    `gorm:"column:RoleName;not null;unique" json:"roleName"`
IsEnable    bool      `gorm:"column:IsEnable" json:"isEnable"`
Permissions []RolePermission }

I use gorm to query data but receive error:

> unsupported Scan, storing driver.Value type []uint8 into type *guid.GUID.

I used uuid before but the id data is wrong when query (guid to uuid).

Is any way to store and work with Guid using Golang and SQL server

答案1

得分: 0

go-gorm的早期版本(v0.2)包含了对SQLTag的UUID/GUID支持,其中isUUID()函数用于测试类型名称("uuid"或"guid")。

但是,在当前的go-gorm v2.0中,该代码已经不存在。

你可能需要实现一个自定义的数据类型扫描器/值转换器,或者使用像google/uuid这样的库:

import (
  "github.com/google/uuid"
  "github.com/lib/pq"
)

type Post struct {
  ID     uuid.UUID `gorm:"type:uuid;default:uuid_generate_v4()"`
  Title  string
  Tags   pq.StringArray `gorm:"type:text[]"`
}
英文:

Early versions of go-gorm (v0.2) were including UUID/GUID support for SQLTag, with isUUID() a test on the type name ("uuid" or "guid").

But that code is no longer present in current go-gorm v2.0.

You might need to implement a custom Data Type Scanner / Valuer, or use one like google/uuid:

import (
  "github.com/google/uuid"
  "github.com/lib/pq"
)

type Post struct {
  ID     uuid.UUID `gorm:"type:uuid;default:uuid_generate_v4()"`
  Title  string
  Tags   pq.StringArray `gorm:"type:text[]"`
}

huangapple
  • 本文由 发表于 2022年9月6日 11:48:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/73616501.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定