Я использую go-pg
(https://github.com/go-pg/pg) и этот код:
type Book struct {
id int
name string
}
var books []Book
err := db.Model(&books).Select()
и все работает хорошо, но мне нужно добавить «виртуальный» столбец, подобный этому :
concat ('info:', 'id:', id, '...') AS info
и я пытался использовать:
query.ColumnExpr("concat ('info:', 'id:', id, '...') AS info")
, но:
go -pg жалуется на: error="pg: can't find column=info in model=Book (try discard_unknown_columns)"
go -pg больше не включает столбцы id
и name
в запросе: concat...
ONLY!
Я могу это понять, потому что теперь go -pg не знает, как связывать данные, но мне действительно нужна та строка, которую я могу извлечь только из БД.
Есть ли способ?
Могу ли я использовать пользовательский тип, подобный приведенному ниже?
type CustomBook struct {
Info string
Book
}
Имеет ли это смысл?