C++ and ODB: Creating a vector of objects

385 views Asked by At

I have an object called TimelineItem which has a datafield called linked_items_ which holds a vector of type TimelineItem. This is to represent items in a timeline that are linked to the original item (repeated items).

I'm having a hard time getting ODB to understand my intent. It is giving me an error "unable to map C++ type "::TimelineItem" used in data member 'linked_items_' to a PostgreSQL database type. Here is my code:

#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_;

I get that it doesn't know what type "TimelineItem" is so it can't map it on the database side, however I'm struggling to find documentation or a way to fix this.

Any feedback is appreciated.

Thanks!

1

There are 1 answers

0
Marc Coll On BEST ANSWER

I think your vector<TimelineItem> linked_items_; should actually be vector<TimelineItem*> linked_items_;