代码之家  ›  专栏  ›  技术社区  ›  Metalgear

如何在GORM中找到具有外键条件的对象?

  •  0
  • Metalgear  · 技术社区  · 4 年前

    我想用GORM中的外键字段设置where条件,但我不能这样做。 我现在正在处理两种模式。

    type Call struct {
        ID          uint    `gorm:"primary_key"`
        Status      string  `gorm:"type:varchar(50)"`       
        ConditionID uint
        Condition   Condition
        JoinStatus  *string `gorm:"type:varchar(50)"`    
        CreatedAt time.Time
        UpdatedAt time.Time
    }
    
    type Condition struct {
        ID            uint `gorm:"primary_key"`
        BigLocationID uint
        BigLocation   Location
        ClassID       uint
        Class         *Class
        MixStr        *string `gorm:"type:text"`
        MixClassIDs   *string `gorm:"type:varchar(50)"`
        SituationIDs  *string `gorm:"type:varchar(255)"`
        GiftPoint     int     `gorm:"type:integer;default:0"`
        Desired       *string `gorm:"type:varchar(255)"`
        CreatedAt     time.Time
        UpdatedAt     time.Time
    }
    

    我可以进行条件查询并得到它们的列表。

    query := fmt.Sprintf("class_id = %d OR mix_class_ids REGEXP ',%d,'", 3, 3)
    var conditions []Condition
    err := DB.Where(query).Find(&conditions).Error
    

    但那不是我想要的。 我想立刻接到有这种情况的电话。 如果条件的ClassID为3或MixClassID包含“3”,如何获取调用列表?

    0 回复  |  直到 4 年前