ODB – C++ Object-Relational Mapping (ORM)

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_;
  ...
};

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です