第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

GORM 如何讀取別名字段的值

GORM 如何讀取別名字段的值

Go
拉丁的傳說(shuō) 2022-08-30 21:40:53
查詢數(shù)據(jù)時(shí),將為字段設(shè)置別名。如何使用 GORM 將別名字段的值讀取到結(jié)構(gòu)中?表結(jié)構(gòu)DROP TABLE IF EXISTS "test"."test";CREATE TABLE "test"."test" (  "id" varchar(32) NOT NULL,  "name" varchar(255) COLLATE "pg_catalog"."default",  "remark" varchar(255) COLLATE "pg_catalog"."default");ALTER TABLE "test"."test" ADD CONSTRAINT "test_pkey" PRIMARY KEY ("id");表對(duì)應(yīng)的模型結(jié)構(gòu)type Test struct {    ID     string `gorm:"column:id;type:varchar(32);primaryKey;comment:Unique ID" json:"id"`    Name   string `gorm:"column:name;type:varchar(255);comment:Name Info" json:"name"`    Remark string `gorm:"column:remark;type:varchar(255);comment:Remark Info" json:"remark"`    MoreInfo string `gorm:"-" json:"moreInfo"` // Non-table field}GORM 查詢gormDB是初始化的 gorm 數(shù)據(jù)庫(kù)連接。test := Test{ID: "0000000001"}gormDB.Select("*, 'testMoreInfoVal' AS more_Info").Where(&test).Find(&test)問(wèn):如何使用 GORM 將表中不存在的別名字段讀取到結(jié)構(gòu)的屬性中?more_InfoMoreInfoTest
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果設(shè)置了表結(jié)構(gòu)并且您沒(méi)有使用AutoMigrate,那么只需更改標(biāo)簽以使MoreInfo成為只讀字段并確保使用別名來(lái)匹配Gorm執(zhí)行DB -> Go命名轉(zhuǎn)換的方式即可解決此問(wèn)題。more_info


type Test struct {

    ID     string `gorm:"column:id;type:varchar(32);primaryKey;comment:Unique ID" json:"id"`

    Name   string `gorm:"column:name;type:varchar(255);comment:Name Info" json:"name"`

    Remark string `gorm:"column:remark;type:varchar(255);comment:Remark Info" json:"remark"`


    MoreInfo string `gorm:"->" json:"moreInfo"` // Non-table field


}


gormDB.Select("*, 'testMoreInfoVal' AS more_info").Where(&test).Find(&test)

如果您使用的是自動(dòng)遷移,那么問(wèn)題將在表中創(chuàng)建一個(gè)列,盡管 Gorm 在使用結(jié)構(gòu)時(shí)會(huì)阻止寫(xiě)入該列。more_info


在這種情況下,您可以做的是使用一個(gè)新的結(jié)構(gòu)來(lái)嵌入測(cè)試結(jié)構(gòu),如下所示:


type Test struct {

    ID     string `gorm:"column:id;type:varchar(32);primaryKey;comment:Unique ID" json:"id"`

    Name   string `gorm:"column:name;type:varchar(255);comment:Name Info" json:"name"`

    Remark string `gorm:"column:remark;type:varchar(255);comment:Remark Info" json:"remark"`

}


type TestExt struct{

    Test 

    MoreInfo string `gorm:"->" json:"moreInfo"`

}


testext := TestExt{}

gormDB.Model(&Test{}).

    Select("*, 'testMoreInfoVal' AS more_info").

    Where(Test{ID: "0000000001"}).

    Find(&testext)


查看完整回答
反對(duì) 回復(fù) 2022-08-30
  • 1 回答
  • 0 關(guān)注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)