code: func (res *Resource) ToPrimaryQueryParams(primaryValue string, context *qor.Context) (string, []interface{}) {
  	if primaryValue != "" {
  		scope := context.GetDB().NewScope(res.Value)
  
  		// multiple primary fields
  		if len(res.PrimaryFields) > 1 {
  			if primaryValueStrs := strings.Split(primaryValue, ","); len(primaryValueStrs) == len(res.PrimaryFields) {
  				sqls := []string{}
  				primaryValues := []interface{}{}
  				for idx, field := range res.PrimaryFields {
  					sqls = append(sqls, fmt.Sprintf("%v.%v = ?", scope.QuotedTableName(), scope.Quote(field.DBName)))
  					primaryValues = append(primaryValues, primaryValueStrs[idx])
  				}
  
  				return strings.Join(sqls, " AND "), primaryValues
  			}
  		}
  
  		// fallback to first configured primary field
  		if len(res.PrimaryFields) > 0 {
  			return fmt.Sprintf("%v.%v = ?", scope.QuotedTableName(), scope.Quote(res.PrimaryFields[0].DBName)), []interface{}{primaryValue}
  		}
  
  		// if no configured primary fields found
  		if primaryField := scope.PrimaryField(); primaryField != nil {
  			return fmt.Sprintf("%v.%v = ?", scope.QuotedTableName(), scope.Quote(primaryField.DBName)), []interface{}{primaryValue}
  		}
  	}
  
  	return "", []interface{}{}
  }
docs: // ToPrimaryQueryParams generate query params based on primary key, multiple primary value are linked with a comma