вас там сложный запрос в БД с JOIN и прочей лабудой. И там на самом деле ни разу не fieldA, а на самом деле там fieldMyBitchA, а к тому же еще и алиас таблицы нужен, то есть реальный фильтр в секции Where должен быть t.fieldMyBitchA.
Вопрос: где вы это делаете? ну то есть на каком этапе у вас fieldA превращается в t.fieldMyBitchA.
Только просьба, не теоритизировать на этот счет, а по факту, кто такое реализовывал, как вы это делали.
вот где я точно не согласен) точно не согласен что это делается на уровне логики
В репе
а в логике вы оперируете этими полями?
даже если ты сделаешь супер тупые методы в репе даймнеВсехКтоПохожНаПетю даймнеВсехКтоПохожНаВалю ... все равно тебе нужно будет маппить запрос в бд
ничего не понял
это пройдет
Ну у меня есть просто некая сущность "фильтр", которая выглядит примерно вот так https://github.com/dimuska139/rawg-sdk-go/blob/master/filters.go (это пример не про API, но по смыслу годится). Там есть метод, который заполняет этот фильтр значениями из реквеста (что-то вроде NewFromUrl, например). Этот фильтр я пробрасываю до репозитория, а там делаю if filter.ID != nil {...} и запрос строю через Squirrel. Но явного маппинга полей из URL в названия колонок таблиц я не делаю - только через ifаки всё
ну вот теперь вопрос: у тебя в запросе должно быть красивое ?name=123 а в бд должен улететь where bitch_field_name = 123 на каком этапе name превращается в bitch_field_name ?
if filter.Name != nil { qb = qb.Where("user.bitch_field_name = ?", *filter.Name) }
Обсуждают сегодня