Project

General

Profile

Dbo: remove() object with defined ManyToMany relations: c... ยป main.cpp

source code - Vladimir Zibarov, 11/07/2012 01:59 PM

 
#include <Wt/Dbo/Dbo>
#include <Wt/Dbo/backend/Sqlite3>
#include <string>

namespace dbo = Wt::Dbo;

class Post;
class Tag;

class Post {
public:
dbo::collection< dbo::ptr<Tag> > tags;

template<class Action>
void persist(Action& a)
{
dbo::hasMany(a, tags, dbo::ManyToMany, "post_tags");
}
};

class Tag {
public:
dbo::collection< dbo::ptr<Post> > posts;

template<class Action>
void persist(Action& a)
{
dbo::hasMany(a, posts, dbo::ManyToMany, "post_tags");
}
};

void run()
{
dbo::backend::Sqlite3 sqlite3(":memory:");
sqlite3.setProperty("show-queries", "true");
dbo::Session session;
session.setConnection(sqlite3);

session.mapClass<Post>("post");
session.mapClass<Tag>("tag");

session.createTables();

dbo::ptr<Post> post;
{
dbo::Transaction transaction(session);
post = session.add(new Post());
dbo::ptr<Tag> tag=session.add(new Tag());
post.modify()->tags.insert(tag);
}

{
dbo::Transaction transaction(session);
//post.remove();
post.modify()->tags.clear();
}
}

int main(int argc, char **argv)
{
run();
}
    (1-1/1)