【发布时间】:2020-07-15 09:17:01
【问题描述】:
我想把结构像
struct Person{
int age;
std::string name;
std::vector<std::string> links;
};
到一个 psql 表中:
CREATE TABLE persons (
age integer,
name text,
links text[]
);
如何在 Poco::PostgreSQL 中添加 std::vector 支持?
看看绑定方法:
void Binder::bind(std::size_t /*pos*/, const std::vector<std::string>& /*val*/, Direction /*dir*/)
{
throw NotImplementedException();
}
我知道用于自定义的 TypeHandler,但它只是将原始类型处理到您的类中,例如 int、std::string 等。
template <>
class TypeHandler<struct CustomClass>
{}
【问题讨论】:
-
您能否编辑您的问题以显示您将如何在 PostgreSQL 中存储此对象?它是一个包含三个字段的表和一个单独的
links表吗?是否可以将links存储为列分隔值或 JSON 列? -
@Botje 不,这不是单独的表格。
links text[]看起来像{"link1","link2"}。在单独表的情况下,任务变得简单 -
这听起来像是 Poco 的缺陷,是的。恐怕您必须自己添加该功能。
标签: c++ postgresql poco-libraries