首页  >  文章  >  后端开发  >  如何在 GORM 模型中初始化 sql.NullString?

如何在 GORM 模型中初始化 sql.NullString?

DDD
DDD原创
2024-11-05 12:46:02754浏览

How to Initialize sql.NullString in GORM Models?

无法使用 String 作为 sql.NullString:需要类型转换

创建 gorm 模型并使用 sql.NullString 时,可能会出现错误出现表明无法使用字符串作为 sql.NullString。这是因为 sql.NullString 是一个对初始化有特定要求的结构。

要解决此问题,应使用正确的语法初始化 Something 字段:

<code class="golang">db.Create(&Day{
    Nameday:     "Monday",
    Dateday:     "23-10-2019",
    Something:   sql.NullString{String: "a string goes here", Valid: true},
    Holyday:     false,
})</code>

作为替代方案,可以创建自定义可为空字符串类型以允许更简单的语法:

<code class="golang">type MyString string

const MyStringNull MyString = "\x00"

// Implement the necessary interfaces for GORM
func (s MyString) Value() (driver.Value, error) { ... }
func (s *MyString) Scan(src interface{}) error { ... }</code>

使用此自定义类型,可以按照最初的预期初始化 Something 字段:

<code class="golang">db.Create(&Day{
    Nameday:     "Monday",
    Dateday:     "23-10-2019",
    Something:   "a string goes here",
    Holyday:     false,
})</code>

以上是如何在 GORM 模型中初始化 sql.NullString?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn