Entity
レコードとテーブルの関係と同様に、エンティティ は データクラス のインスタンスです。 エンティティはデータクラスと同じ属性を持つほか、データ値や、特有のプロパティお よび関数を持ちます。
概要
.attributeName
履歴
リリース | 内容 |
---|---|
17 | 追加 |
.attributeName : any
説明
データクラス属性はすべて、エンティティのプロパティとして利用可能です。各エンティティのプロパティは、当該 エンティティの属性値を格納します.
データクラス属性は [ ] を使用したシンタックスを使用することでもアクセス可能です。
この属性値タイプは属性の種類 (.kind; リレーションまたはストレージ) によります。
- attributeName で指定した属性がストレージ型の場合:
.attributeName
は attributeName と同じ型の値を返します。 - attributeName で指定した属性がリレートエンティティ型の場合:
.attributeName
はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" - attributeName で指定した属性がリレートエンティティズ型の場合:
.attributeName
はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。
例題
var $myEntity : cs.EmployeeEntity
$myEntity:=ds.Employee.new() // エンティティを新規作成します
$myEntity.name:="Dupont" // 'Dupont' を 'name' 属性に代入します
$myEntity.firstname:="John" // 'John' を 'firstname' 属性に代入します
$myEntity.save() // エンティティを保存します
.clone()
履歴
リリース | 内容 |
---|---|
17 | 追加 |
.clone() : 4D.Entity
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | 4D.Entity | <- | 同レコードを参照する新しいエンティティ |
|
説明
.clone()
関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します. このメソッドを使用するとエンティティを個別に更新することができます。
エンティティに対して何らかの変更をおこなった場合、それらは
.save( )
関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。
この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ(.isNew()
が true を返すもの) に対して呼び出すことはできません。
例題
var $emp; $empCloned : cs.EmployeeEntity
$emp:=ds.Employee.get(672)
$empCloned:=$emp.clone()
$emp.lastName:="Smith" // $emp に対する変更は $empCloned には適用されません