찾다

 >  Q&A  >  본문

v1에서 v2로 업그레이드한 후 Golang Gorm 범위가 손상됨

저는 Gorm v1을 사용하고 있습니다. 내 페이지 매김 범위는 잘 작동합니다:

으아아아

저를 어떻게 부르는지:

으아아아

이 역시 Gorm v2로 업그레이드하기 전까지는 잘 작동했습니다. 이제 다음 메시지가 나타납니다:

[0.204ms] [행: 2] SELECT * FROM genres LIMIT 2 sql: 1개가 아닌 9개의 대상 매개변수가 필요합니다. sql: 1개가 아닌 9개의 대상 매개변수가 필요합니다. [GIN] 2022/06/18 - 00:41:00 | 400 | 1.5205 ms | /api/v1/장르" 오류 #01: sql: 1개 대신 9개의 대상 매개변수를 검색합니다. sql: 1개 대신 9개의 대상 매개변수를 검색합니다.

이제 다음 줄로 인해 오류가 발생하는 것을 발견했습니다.

이를 제거하면 쿼리가 올바르게 실행되고 있기 때문입니다. (분명히 db.Model(实体).Count(&totalRows) 연결이 재사용되고 일부 잔여 데이터가 있으므로 오프셋 및 제한 쿼리가 실패합니다. 개수 및 오프셋 쿼리를 위한 새 세션을 생성해 보았습니다. TotalPages 的数据不正确,因为它没有计算)。浏览文档,我看到https://gorm.io/docs/method_chaining.html#Multiple-Immediate-Methods,所以我的猜测是用于获取 totalRowsdb.Model(entity).Count(&totalRows).Session(&gorm.Session{})

return db.Offset(p.Offset).Limit(p.PerPage).Session(&gorm.Session{})

모두가 자신의 세션을 사용할 수 있었으면 좋겠지만 작동하지 않는 것 같습니다.

제안사항이 있나요?

P粉005417748P粉005417748303일 전514

모든 응답(1)나는 대답할 것이다

  • P粉465287592

    P粉4652875922024-02-04 17:11:07

    필요하신 분:

    새 세션을 만들어야 했지만 올바른 방식으로 만들지 않았습니다. 내가 한 일:

    으아아아

    효과는 기대한대로 입니다. 따라서 내 현재 범위는 다음과 같습니다.

    으아아아

    저는 countDBSession 获取计数,这不会影响 *db.Gorm 参数在 return db.Offset(p.Offset).Limit(p.PerPage) 的使用).Session(&gorm.Session{})

    을 통해 새 세션을 사용하고 있습니다.

    회신하다
    0
  • 취소회신하다