4D v19

entity.fromObject( )

Home

 
4D v19
entity.fromObject( )

entity.fromObject( )  


 

Die Methode entity.fromObject( ) füllt die Entity mit dem Inhalt von object.

Hinweis: Diese Methode ändert die ursprüngliche Entity.

Das Abbilden zwischen Objekt und Entity erfolgt über die Attributsnamen:

  • Existiert eine Eigenschaft des Objekts nicht in der Dataclass, wird sie ignoriert.
  • Die Datentypen müssen übereinstimmen. Bei unterschiedlichen Typen in Objekt und Dataclass wird das Attribut in der Entity nicht gefüllt. 4D versucht, den Datentyp soweit wie möglich anzupassen (siehe RELATE MANY), sonst bleibt das Attribut unangetastet.
  • Der Primärschlüssel kann so wie er ist oder mit einer "__KEY"-Eigenschaft (gefüllt mit dem Primärschlüsselwert) angegeben werden. Wenn er nicht bereits in der Dataclass vorhanden ist, wird die Entity mit dem angegebenen Wert erstellt, wenn entity.save( ) aufgerufen wird. Wenn der Primärschlüssel nicht angegeben ist, wird die Entity erstellt und der Primärschlüsselwert wird unter Berücksichtigung der Datenbankregeln zugewiesen. Das Auto-Inkrement wird nur berechnet, wenn der Primärschlüssel null ist. 

object kann eine verknüpfte Entity unter folgenden Bedingungen verwalten:

  • object enthält den Fremdschlüssel selbst oder
  • object enthält eine Objekteigenschaft mit demselben Namen wie die verknüpfte Entity mit einer einzelnen Eigenschaft mit Namen "__KEY".
  • existiert die verknüpfte Entity nicht, wird sie ignoriert.

Mit folgendem Objekt $o:

{
    "firstName": "Mary",
    "lastName": "Smith",
    "salary": 36500,
    "birthDate": "1958-10-27T00:00:00.000Z",
    "woman": true,
    "managerID": 411,// relatedEntity gegeben mit PK
    "employerID": 20 // relatedEntity gegeben mit PK
}

erstellt nachfolgender Code eine Entity mit den verknüpften Entities manager und employer.

 C_OBJECT($o)
 $entity:=ds.Emp.new()
 $entity.fromObject($o)
 $entity.save()

Sie können auch eine verknüpfte Entity verwenden, die als Objekt gegeben ist:

{
    "firstName": "Marie",
    "lastName": "Lechat",
    "salary": 68400,
    "birthDate": "1971-09-03T00:00:00.000Z",
    "woman": false,
    "employer": {// relatedEntity gegeben als Objekt
        "__KEY": "21"
    },
    "manager": {// relatedEntity gegeben als Objekt
        "__KEY": "411"
    }
}



Siehe auch 

entity.toObject( )

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: ORDA - Entity

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)