libodb2.4不支持容器中的容器,是否有解决方法? 我有一个需要使用C++和Qt的项目。它还需要在文件系统中持久化对象。我发现libodb-2.4是一个完美的解决方案。但它不能直接支持container-in-container的值,而项目中的数据结构必须与container-in-container一起存储

libodb2.4不支持容器中的容器,是否有解决方法? 我有一个需要使用C++和Qt的项目。它还需要在文件系统中持久化对象。我发现libodb-2.4是一个完美的解决方案。但它不能直接支持container-in-container的值,而项目中的数据结构必须与container-in-container一起存储,c++,serialization,orm,persistence,odb,C++,Serialization,Orm,Persistence,Odb,当前的解决方法是将容器中的容器值类型更改为在db中持久化的对象类型,然后我可以将容器存储在容器中。但在那之后,我必须管理更多的对象关系,只为容器中的容器值,项目变得更加复杂 是否有其他解决方案或LIB可以解决此问题?或者序列化要存储的对象是更好的解决方案 例如: class A { }; class B { std::vector<A> a; // other member }; class C { std::map<int, B> int id; // other

当前的解决方法是将容器中的容器值类型更改为在db中持久化的对象类型,然后我可以将容器存储在容器中。但在那之后,我必须管理更多的对象关系,只为容器中的容器值,项目变得更加复杂

是否有其他解决方案或LIB可以解决此问题?或者序列化要存储的对象是更好的解决方案

例如:

class A {

};

class B {
std::vector<A> a;
// other member
};

class C {
std::map<int, B>
int id;
// other member.
};
A类{
};
B类{
std::载体a;
//其他成员
};
C类{
标准::地图
int-id;
//其他成员。
};

我不能直接用odb将C存储在sqlite中。

Q:你能给我们看一些示例代码吗?问:你有什么建议吗?@paulsm4我已经添加了问题中的示例代码。我已经阅读了菜单,找到了一个工作的替代方案,。我在类B和类A中添加serialize方法,当存储类C时,首先将类B序列化为字符串,然后容器中的容器成为容器中的字符串,这是odb的一个函数,称为virtual member。但是odb不能在虚拟成员类型中支持向量,所以B中的序列化必须生成一个字符串。Q:你能给我们展示一些示例代码吗?问:你有什么建议吗?@paulsm4我已经添加了问题中的示例代码。我已经阅读了菜单,找到了一个工作的替代方案,。我在类B和类A中添加serialize方法,当存储类C时,首先将类B序列化为字符串,然后容器中的容器成为容器中的字符串,这是odb的一个函数,称为virtual member。但是odb不能在虚拟成员类型中支持向量,所以在B中的序列化必须产生一个字符串。