データベース行はオブジェクトにマッピングされます。現在マッピングできるのはGenericRecordクラスのみです。
クラス属性とは、オブジェクトからアクセスすることのできる属性です。クラス属性ではない属性のデータは変更することができません。通常、主キーと外部キーを除くすべての属性をクラス属性に設定します。
原則として主キーと外部キーはクラス属性に設定しないでください。どちらもTapKitが自動的に追跡します。主キー値は新規オブジェクトを追加するときに生成され、外部キーはリレーションシップを通して生成・管理されます。
SQLのデータ型は、それぞれRubyのオブジェクトにマッピングされます。
データ型 | オブジェクト |
---|---|
文字列 | String |
整数 | Integer |
浮動小数点数 | Float |
日付 | TapKit::Date |
時刻 | TapKit::Time |
日付と時刻 | TapKit::Timestamp |
TapKitは主キー値と外部キー値を自動生成しますが、いくつかの制限があるので注意してください。
リレーションシップを持つオブジェクトをフェッチしても、リレーション先のオブジェクトがすぐにフェッチされることはありません。フェッチ時の負荷を軽減するため、TapKitはリレーション先に「フォールト」という仮のオブジェクトをセットします。
フォールト先のデータにアクセスしたり、フォールトに対してメソッドを実行すると、TapKitはデータベースからリレーション先のデータを自動的に取得します。フォールティングの処理はフレームワークが自動的に行うので、特別なコードは必要はありません。