首页 > 其他分享 >Gorm一对一,一对多,查询报错 unsupported relations for schema

Gorm一对一,一对多,查询报错 unsupported relations for schema

时间:2023-07-06 18:56:07浏览次数:40  
标签:comment int32 GoodsSpecificationAttrValueModel column relations id 报错 unsupporte

Gorm一对一,一对多,搞我半天bug

标签(空格分隔): go,gorm

问题:一对一,一对多,查询数据报错:unsupported relations for schema

代码

// GoodsSpecificationAttrModel 商品规格-属性表
type GoodsSpecificationAttrModel struct {
	ID        int32                              `gorm:"column:id;primaryKey;autoIncrement;not null;"`
	GoodsId   int32                              `gorm:"column:goods_id;default:0;comment:'商品id'"`
	Name      string                             `gorm:"column:name;comment:'属性名称'"`
	ValueData []GoodsSpecificationAttrValueModel `gorm:"foreignKey:attr_id;references:id"`
}

func (g *GoodsSpecificationAttrModel) TableName() string {
	return "goods_specification_attribute"
}

// GoodsSpecificationAttrValueModel 商品规格-属性值表
type GoodsSpecificationAttrValueModel struct {
	ID       int32                       `gorm:"column:id;primaryKey;autoIncrement;not null;"`
	GoodsId  int32                       `gorm:"column:goods_id;default:0;comment:'商品id'"`
	AttrId   int32                       `gorm:"column:attr_id;default:0;comment:'属性id'"`
	Name     string                      `gorm:"column:name;comment:'属性值'"`
	AttrData GoodsSpecificationAttrModel `gorm:"foreignKey:attr_id;references:id"`
}

func (g *GoodsSpecificationAttrValueModel) TableName() string {
	return "goods_specification_attribute_value"
}



// 查询数据
var attrValue GoodsSpecificationAttrValueModel

tx := global.DB.Debug().Preload("AttrData").
	Where("id = ?", 1).
	Limit(1).
	Find(&attrValue)
fmt.Printf("row: %d\n", tx.RowsAffected)
fmt.Printf("err: %+v\n", tx.Error)
fmt.Printf("res: %+v\n", attrValue)

问题原因

Preload 要写结构体关联字段的名称,不要写数据表名称,或者关联模型结构体的名称

标签:comment,int32,GoodsSpecificationAttrValueModel,column,relations,id,报错,unsupporte
From: https://www.cnblogs.com/yanweifeng/p/17533056.html

相关文章

  • IDEA:AXIOS使用网页报错net::ERR_CONNECTION_REFUSED
     之前使用的是下载的文件,一直是报错的状态,页面加载不进来 之后进官网选择在线的之后可用。......
  • IDEA中SpringBoot项目 注解报错
    WSG报错:应通过@SpringBootApplication指定特性 IDEA中@EnableAutoConfiguration注解报错Attributesshouldbespecifedvia@SpringBootApplication多次用Maven清理重新导包后还是不可以但是项目可以正常启动起来这种是IDEA级别的检查错误 需要在IDEA中Settings中设......
  • 报错 Cannot construct instance of `java.time.LocalDate` LocalDateTime
    原因:报错的原因就是导入了JacksonObjectMapper对象映射器,导致不知道怎么将LocalDateTime转换成Json类型的数据了,在没有导入使用JacksonObjectMapper的时候是不会报错的。解决方式:指定LocalDateTime类型的数据如何进行序列化就好了,给实体类中LocalDateTime的属性加上注解就可以了:......
  • Windows+Celery4+eventlet,异步报错:Recursion Error: maximum recursion depth exceede
    前情提要:Windows环境下,使用Celery4和eventlet,在Django项目中启用异步和周期,报错如下:RecursionError:maximumrecursiondepthexceededwhilecallingaPythonobject经过排查,只找到解决方法:改为使用gevent1、安装:pipinstallgevent2、在manage.py文件中添加以下代码imp......
  • mac配置maven时报错
    mac配置maven时报错mac配置完jdk时,可以显示jdk的版本信息,但是配置完maven的时候,输入mvn-v命令就提示以下错误信息: 修改方法:vim~/.bash_profileexportJAVA_HOME=/usr/libexec/java_home-v1.8exportJAVA_HOME=$JAVA_HOMEexportPATH=/opt/apache-maven-3.6.3/bin:$PAT......
  • 7.5 迁移数据库报错原因 ModuleNotFoundErro
    迁移数据库时产生了这样的报错:ModuleNotFoundError:Nomodulenamed'course'得出结论是因为没在配置文件中导入appINSTALLED_APPS=['courses',]修改后导入成功了......
  • 常见报错以及解决办法_1
    1.报错信息:TYPEERROR:MAX()RECEIVEDANINVALIDCOMBINATIONOFARGUMENTS-GOT(AXIS=INT,OUT=NONETYPE,),BUTEXPECTEDONEOF:报错代码为:deff1_overall_1sec(O,T,block_size):iflen(O.shape)==3:O,T=utils.reshape_3Dto2D(O),utils.reshape_3D......
  • 记录 python request ProxyError报错
    【出自】:https://zhuanlan.zhihu.com/p/350015032  侵删 解决办法:在原报错环境中使用下面命令重装低版本 urllib3:pipinstallurllib3==1.25.11 问题根源先查了一下 urllib3 的更新日志,应该是 1.26.0 的修改导致的:  按照这个更新日志,明明应该是增加了 HT......
  • Element-plus按需导入后,组件的正确使用和使用组件时TS报错找不到名称“xxxx”
    1.按需导入后使用组件Element-plus组件库的示例代码中,都import导入了组件,如:<template><el-buttontype="primary"@click="openFullScreen2">Asaservice</el-button></template><scriptlang="ts"setup>import{ElLoad......
  • Nacivate 连接远程mysql时 报错 Lost connection to MySQL server at ‘reading initi
    出现这种报错首先要检查第一:查看mysql的配置文件 /etc/my.cnf,根据服务器的不同以及安装的mysql版本有的是配置文件/etc/mysql/conf.d/50.server.confstep1:注释bind-address=127.0.0.1这句step2:找到[mysqld]部分的参数,在配置后面建立一个新行,添加skip-name-resolve......