ODB – C++ Object-Relational Mapping (ORM)
サーバが落ちたり,再起動したら,世界の時間が巻き戻ってしまうのは困る。メモリ上のオブジェクトをどうハードディスクに保存するか探っていたら,ODBを見つけた。
gitのリポジトリに追加して,コンパイル。サードパーティのライブラリも全てソースから保持していく。gcc-4.5のpluginを利用しているので,gcc-4.5にアップデート。gcc-4.5-plugin-devパッケージも必要だった。libcutlも必要。libcutlをmake installしているとconfigureがうまくいかず,–with-libcutl=でソースディレクトリを指定してOKだった。
ODBを作っているCODE SYNTHESISは南アフリカの会社のようだ。XSDなども,COLLADAに対応しているので使ってみようかと思っている。南アフリカの通貨ランドにはたいへんお世話になっているので,親しみを感じる。
ODB対応のコーディングは下記が肝と分かったが,vectorの中身をname*という感じ(実際にはBHOBJECT*)にしたい。うまくDBに保存できるのだろうか。
#pragma db value
class name
{
public:
name (const std::string&, const std::string&);
...
private:
friend class odb::access;
name ();
...
};
#pragma db object
class person
{
...
private:
std::vector<name> aliases_;
...
};
コメントを残す