read
基础查询
go
var user UserModel
r.db.WithContext(ctx).Model(&UserModel{}).Where("email = ?", email).First(&user).Error泛型
go
user, err := gorm.G[UserModel](r.db).Where("email = ?", email).First(ctx)分页
go
func (s *AppRepository) GetAppList(ctx context.Context, page int, size int) ([]AppDTO, int64, error) {
var apps []model.App
var total int64
db := s.db.WithContext(ctx).Model(&model.App{})
if err := db.Count(&total).Error; err != nil {
return nil, 0, err
}
if err := db.Offset((page - 1) * size).
Limit(size).
Find(&apps).Error; err != nil {
return nil, 0, err
}
return ToAppList(apps), total, nil
}Exists
go
func (r *UserRoleRepo) Exists(ctx context.Context, userID, roleID uint) (bool, error) {
var cnt int64
err := r.db.WithContext(ctx).
Model(&iamdomian.UserRoleModel{}).
Where("user_id = ? AND role_id = ?", userID, roleID).
Count(&cnt).Error
if err != nil {
return false, err
}
return cnt > 0, nil
}