C++和 ODB:创建对象的向量

C++ and ODB: Creating a vector of objects

本文关键字:向量 创建对象 ODB C++      更新时间:2023-10-16

我有一个名为TimelineItem的对象,它有一个名为linked_items_的数据字段,其中包含TimelineItem类型的向量。这是为了表示时间轴中链接到原始项目的项目(重复项目(。

我很难让ODB理解我的意图。它给了我一个错误"无法将数据成员"linked_items_"中使用的C++类型"::TimelineItem"映射到PostgreSQL数据库类型。这是我的代码:

#pragma db object
class TimelineItem {
    // Timeline Item data fields
    private:
        // Default constructor for ODB
        TimelineItem() {}
        friend class odb::access;
        #pragma db id auto
        unsigned long id_;
        Event *event_;
        time_t start_;
        time_t end_;
        TimelineItem *linked_;
        vector<TimelineItem> linked_items_;

我知道它不知道"TimelineItem"是什么类型,因此无法在数据库端映射它,但是我正在努力寻找文档或解决此问题的方法。

任何反馈不胜感激。

谢谢!

我认为你的vector<TimelineItem> linked_items_;实际上应该vector<TimelineItem*> linked_items_;