如何使用复合键在sqlite_orm中插入条目

时间:2019-05-10 09:31:52

标签: c++ sqlite orm

ITNOA

我使用sqlite_orm库在程序中使用sqlite,并且具有如下表

auto storage = make_storage("test_remove.sqlite",
                                   make_table("objects",
                                              make_column("key_part_1",
                                                          &Object::key_part_1),
                                              make_column("key_part_2",
                                                          &Object::key_part_2),
                                              make_column("name",
                                                          &Object::name),
                                              primary_key(&Object::key_part_1, &Object::key_part_2)));

如您所见,该表具有复合键(key_part_1key_part_2)。当我从Obejct创建实例时,如下所示

Object object{0, 0, "dummy"};

并尝试插入表格中

auto id1 = storage.insert(object);

我有一个例外。

所以我的问题是如何向该表中插入对象?

1 个答案:

答案 0 :(得分:0)

正如您在GitHub上的一个针对sqlite_ormComposite key title项目中看到的那样,使用复合键插入对象的方法必须使用key函数而不是{{1} }功能如下

考虑您拥有下面的实体

replace

并创建如下所示的模式

insert

因此您可以像下面这样插入该实体的一个瞬间

struct Object
{
    int key_part_1;
    int key_part_2;
    std::string name;
};