返回顶部
首页 > 资讯 > 后端开发 > GO >Gorm 查询自定义加入额外列
  • 193
分享到

Gorm 查询自定义加入额外列

2024-04-04 23:04:31 193人浏览 八月长安
摘要

今天编程网给大家带来了《GORM 查询自定义加入额外列》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持

今天编程网给大家带来了《GORM 查询自定义加入额外列》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我正在尝试从 Gorm 上的多对多关系中获取额外的列。示例

  1. 部分
type part struct {
    id unit
    name string
 }
  • 图表
  • type diagram struct {
        id unit
        name string
        parts []part `gorm:"many2many:diagram_parts;"`
     }
  • 图表部分
  • type diagrampart struct{
        diagramid         uint `gorm:"primarykey"`
        partid            uint `gorm:"primarykey"`
        partdiagramnumber int
        partnumber        string
        partdescription   string
    }

    这就是我尝试检索 parts 中的 partnumber 和 partdescription 所做的事情。

    diagram := &Diagram{}
    db := s.db.Where("id = ?", 1).
            Preload("Parts", func(db *gorm.DB) *gorm.DB {
                return db.Select("parts.*, diagram_parts.part_number, diagram_parts.part_description").
                    Joins("left join diagram_parts on diagram_parts.part_id = parts.id")
            }).
            First(diagram)

    不幸的是,我无法检索零件编号、零件描述。我该怎么办?


    正确答案


    您可以在 struct part 上添加字段 partnumberpartdescription diagram,然后在该字段上添加标记 gorm:"-:migration;->" 以忽略迁移并读取唯一模式。但根据您的情况,您可以将其添加到 struct part 中,因为您已经预加载了它。

    来源:https://gorm.io/docs/models.html#Field-Level-Permission

    示例如下:

    package main
    
    import (
        "fmt"
    
        "gorm.io/driver/sqlite"
        "gorm.io/gorm"
    )
    
    type Part struct {
        Id              uint `gorm:"primaryKey"`
        Name            string
        PartNumber      string `gorm:"-:migration;->"`
        PartDescription string `gorm:"-:migration;->"`
    }
    
    type Diagram struct {
        Id              uint `gorm:"primaryKey"`
        Name            string
        Parts           []Part `gorm:"many2many:diagram_parts;"`
        // PartNumber      string `gorm:"-:migration;->"`
        // PartDescription string `gorm:"-:migration;->"`
    }
    
    type DiagramPart struct {
        DiagramId         uint `gorm:"primaryKey"`
        PartId            uint `gorm:"primaryKey"`
        PartDiagramNumber int
        PartNumber        string
        PartDescription   string
    }
    
    func main() {
        db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
        if err != nil {
            panic("failed to connect database")
        }
        db.AutoMigrate(&Diagram{}, &Part{}, &DiagramPart{})
        diagram := &Diagram{}
        err = db.Debug().Where("id = ?", 1).
            // Select("diagrams.*, diagram_parts.part_number, diagram_parts.part_description").
            Preload("Parts", func(db *gorm.DB) *gorm.DB {
                return db.Select("parts.*, diagram_parts.part_number, diagram_parts.part_description").
                    Joins("left join diagram_parts on diagram_parts.part_id = parts.id")
            }).
            // Joins("left join diagram_parts on diagram_parts.diagram_id = diagrams.id").
            First(diagram).Error
        if err != nil {
            panic(err)
        }
    
        fmt.Printf("diagram: %v\n", diagram)
        fmt.Println("part number:", diagram.Parts[0].PartNumber)
    }
    
    

    以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于golang的相关知识,也可关注编程网公众号。

    您可能感兴趣的文档:

    --结束END--

    本文标题: Gorm 查询自定义加入额外列

    本文链接: https://lsjlt.com/news/596353.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Gorm 查询自定义加入额外列
      今天编程网给大家带来了《Gorm 查询自定义加入额外列》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持...
      99+
      2024-04-04
    • GORM:使用相同的外键定义多个列
      php小编百草今天为大家带来一个有关GORM的问题:如何在GORM中使用相同的外键定义多个列?在数据库设计中,有时我们需要在多个表中使用相同的外键列,这就需要我们在GORM中进行合适的...
      99+
      2024-02-13
    • GORM 使用自定义列配置多对多
      在PHP开发中,数据库操作是不可避免的一部分。而对于数据库操作框架GORM来说,它的灵活性和强大功能一直备受开发者们的青睐。在多对多关系的处理上,GORM提供了自定义列配置的功能,让开...
      99+
      2024-02-13
    • Fastadmin 列表自定义字段查询处理
      在项目开发过程中经常遇到列表中要展示一个数据库表中不存在且是自定义的字段进行展示,还要多该字段进行模糊查询操作;以下是该解决方案。此方案仅针对使用fastadmin框架来开发的项目。  场景:在订单order表中展示会员名称,会员名称在us...
      99+
      2023-09-14
      php
    • 如何解决Boostrap栅格系统与自己额外定义媒体查询的冲突问题
      小编给大家分享一下如何解决Boostrap栅格系统与自己额外定义媒体查询的冲突问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!html结构如下<div class=&qu...
      99+
      2024-04-02
    • vue+element自定义查询组件
      本文主要介绍vue项目,在引入element的前提下,对组件进行二次封装实现通过配置项直接布局。 一、查询条件组件化 结合EventBus.js的使用,传递事件更高效,可以避免各种复...
      99+
      2024-04-02
    • Angular中怎么自定义模糊查询
      Angular中怎么自定义模糊查询,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体代码如下:<!DOCTYPE html&g...
      99+
      2024-04-02
    • Linq中怎么自定义组合查询
      本篇文章为大家展示了Linq中怎么自定义组合查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。这个表单将Linq自定义组合条件提交后台,我先将它封装成条件对象的数组。///  /...
      99+
      2023-06-17
    • 使用JPA自定义SQL查询结果
      目录JPA自定义SQL查询结果直接上代码最后跑一下demo代码JPA的SQL查询一点睛二JPA的NamedQuery查询三使用@Query查询JPA自定义SQL查询结果 很多时候都会...
      99+
      2024-04-02
    • spring data jpa 查询自定义字段,转换为自定义实体方式
      目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台。 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2...
      99+
      2024-04-02
    • Oracle查询提示未明确定义列怎么办
      这篇文章将为大家详细讲解有关Oracle查询提示未明确定义列怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。    在调试Or...
      99+
      2024-04-02
    • springboot jpa 实现返回结果自定义查询
      目录jpa 返回结果自定义查询第一种方法第二种方法使用jpa两张表联查返回自定义实体1、创建一个SpringBoot空白项目,引入pom依赖2、application.yml配置文件...
      99+
      2024-04-02
    • JPA怎么使用findBy方法自定义查询
      这篇文章给大家分享的是有关JPA怎么使用findBy方法自定义查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JPA使用findBy方法自定义查询最近在项目中使用spring boot+jpa的方式来访问数据库...
      99+
      2023-06-21
    • 怎么使用JPA自定义SQL查询结果
      本篇内容介绍了“怎么使用JPA自定义SQL查询结果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JPA自定义SQL查询结果很多时候都会遇到自...
      99+
      2023-06-25
    • JPA如何使用findBy方法自定义查询
      目录JPA使用findBy方法自定义查询在JPA中使用findBy方法自定义查询在postman测试请求的接口如下JPA的findBy语法整理前提操作JPA中支持的关键词JPA使用f...
      99+
      2024-04-02
    • MySQL:slave 延迟一列 外键检查和自增加锁
      本文没有太多可读性,完全是自己的笔记 一、现象 延迟大,大事物。 表结构 image.png 无IO image.png SQL TH...
      99+
      2024-04-02
    • MySQL 使用自定义变量进行查询优化
      目录优化排序查询避免重复获取刚刚修改的数据行懒加载的联合查询优化排序查询 自定义变量的一个重要特性是你可以同时将该变量的数学计算后的结果再赋值给该变量,类似于我们的 i = i + 1这种方式。下面是一个用于计算数...
      99+
      2022-05-21
      MySQL 自定义变量 MySQL 查询优化
    • SpringDataJpa多表查询返回自定义实体方式
      目录SpringDataJpa多表查询返回自定义实体Repository好下面到单元测试自定义实体SpringDataJpa多表查询返回自定义VO的问题下面是我的代码下面是我的dao...
      99+
      2024-04-02
    • jpa自定义排序查询的方法是什么
      在JPA中,可以使用以下方法自定义排序查询:1. 使用@Query注解:可以在查询方法上添加@Query注解,通过JPQL或者SQL...
      99+
      2023-09-16
      jpa
    • MyBatis-Plus 分页查询以及自定义sql分页
      一、引言 分页查询每个人程序猿几乎都使用过,但是有部分同学不懂什么是物理分页和逻辑分页。 物理分页:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较...
      99+
      2023-09-01
      mybatis sql mysql
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作