java sql查询where,生成的SQL查询带有“WHERE(1 <> 1)”条件

我正在尝试使用Gorm ORM for Go查询多对多关系 .

我有两个结构: User & Address .

type User struct {

// gorm.Model

UUID string `gorm:"type:uuid;primary_key;auto_increment:false"`

Firstname string

// ...

Addresses []Address `gorm:"many2many:useraddresses"`

}

// Address represents the Postgres SQL address model

type Address struct {

UUID string `gorm:"type:uuid;primary_key;auto_increment:false"`

Line1 string

// ...

}

var u []User

var a []Address

如果我只是使用用户作为模型查询,则返回所有用户(发送sql查询 SELECT * FROM "users" ):

db.Model(&u).Find(&u)

但是,如果我包含相关的地址,则返回外科医生,但没有地址:

db.Model(&u).Related(&a, "Addresses").Find(&u)

这会在第一个之前创建另一个sql查询:

SELECT "addresses".*

FROM "addresses" INNER JOIN "useraddresses" ON "useraddresses"."address_uuid" = "addresses"."uuid"

WHERE (1 <> 1)

当然, where false 条件会阻止返回任何地址 .

任何人都可以阐明我如何使用Gorm的 db.Model 方法包含地址?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值