7.8. データマッパーのデータタイプおよびコレクション
データマッパーでは、フィールドは以下のいずれかになります。
-
単一の値を格納する プリミティブ タイプ。プリミティブタイプの例には、
boolean
、char
、byte
、short
、int
、long
、float
、およびdouble
があります。プリミティブタイプは単一のフィールドであるため拡張できません。 - 異なるタイプの複数のフィールドで設定される コンプレックス タイプ。コンプレックスタイプの子フィールドを設計時に定義します。データマッパーではコンプレックスタイプを拡張して子フィールドを表示できます。
各タイプのフィールド (プリミティブおよびコンプレックス) をコレクションとすることもできます。コレクションは、複数の値を持つことができる単一のフィールドです。コレクションのアイテム数はランタイム時に決定されます。設計時、データマッパーではコレクションは で示されます。コレクションがデータマッパーインターフェイスで拡張可能かどうかは、タイプにより決定されます。コレクションがプリミティブタイプの場合、拡張できません。コレクションがコンプレックスタイプの場合、データマッパーを展開し、コレクションの子フィールドを表示できます。各フィールドをマップ元またはマップ先とすることができます。
以下に例を示します。
-
id
はプリミティブタイプのフィールド (int
) です。実行時に、社員はID
を 1 つだけ持てます。たとえば、ID=823
のみを持てます。そのため、ID
はコレクションではないプリミティブタイプです。データマッパーでは、ID
は拡張できません。 -
email
はプリミティブタイプのフィールド (文字列) です。実行時に、社員は複数のemail
の値を持つことができます。たとえば、email<0>=aslan@home.com
とemail<1>=aslan@business.com
を持つことができます。そのため、email
はコレクションでもあるプリミティブタイプです。データマッパーは、 を使用して、email
フィールドがコレクションであることを示しますが、email
はプリミティブタイプであるため (子フィールドがない)、拡張できません。 -
employee
は、ID
やemail
を含む複数の子フィールドを持つ複雑なオブジェクトフィールドです。会社には多くの従業員がいるため、起動時にemployee
はコレクションでもあります。
設計時に、データマッパーは を使用してemployee
がコレクションであることを示します。employee
フィールドは、子フィールドが含まれるコンプレックスタイプであるため、拡張可能です。