SQLX «отсутствует имя назначения» при использовании имени таблицы в теге struct - PullRequest
0 голосов
/ 06 декабря 2018

Проблема в том, что когда я использую теги struct с объектом, они не работают должным образом.Я работал над проектами, которые раньше делали то же самое, но не имели проблем, но я не могу понять, почему.

Пример:

это не работает:

type Category struct {  
   ID          int            `json:"id" db:"category.id"`  
   Name        string         `json:"name" db:"category.name"`   
   Description string         `json:"description" db:"category.description"` 
}

получено сообщение об ошибке: missing destination name id in *[]Category

это отлично работает:

type Category struct {  
   ID          int            `json:"id" db:"id"`   
   Name        string         `json:"name" db:"name"`    
   Description string         `json:"description" db:"description"` 
}

запрос:

result := []Category{}
query := `
    SELECT category.id, category.name, category.description FROM category;
    `
err := sqlx.Select(db, &result, query)

Выполнение запроса в редакторе SQL работаетпросто хорошо.Я также работал над проприетарным проектом, в котором добавление имени таблицы к тегу работает нормально, но по какой-то причине я не могу с этим справиться.

Оцените помощь,

РЕДАКТИРОВАТЬ:

, используя mysql

1 Ответ

0 голосов
/ 07 декабря 2018

Ошибка была допущена на этапе подключения!

Мне нужно было добавить columnsWithAlias=true к параметрам подключения, и код работал нормально.

Спасибо RayfenWindspear за подсказку, что mysql по умолчанию не отправляет имена столбцов.

...