4D v19

entity.fromObject( )

Inicio

 
4D v19
entity.fromObject( )

entity.fromObject( )  


 

El método entity.fromObject( ) llena la entidad con el contenido objeto.

Nota: este método modifica la entidad original.

El mapeo entre el objeto y la entidad se realiza en los nombres de los atributos:

  • Si una propiedad del objeto no existe en la dataclass, se ignora.
  • Los tipos de datos deben ser equivalentes. Si hay una discrepancia de tipo entre el objeto y la dataclass, 4D intenta convertir los datos siempre que sea posible (ver RELATE MANY), de lo contrario, el atributo quedará intacto.
  • La llave primaria puede darse tal cual o con una propiedad "__KEY" ( llena con el valor de la llave primaria). Si no existe ya en la clase de datos, la entidad se crea con el valor dado cuando se llama a entity.save( ). Si no se da la llave primaria, la entidad se crea y el valor de la llave primaria se asigna con respecto a las reglas de la base de datos. El autoincremento sólo se calcula si la llave primaria es nula.

objeto puede contener una related entity bajo las siguientes condiciones:

  • objeto objeto contiene la llave foránea en sí, o
  • objeto contiene una propiedad  de tipo objeto con el mismo nombre que la entidad relativa, que contiene una sola propiedad llamada "__KEY".
  • si la entidad relativa no existe, se ignora.

Ejemplo  

Con el objeto $o siguiente:

{
    "firstName": "Mary",
    "lastName": "Smith",
    "salary": 36500,
    "birthDate": "1958-10-27T00:00:00.000Z",
    "woman": true,
    "managerID": 411,// relatedEntity ofrecida con la llave primaria
    "employerID": 20 // relatedEntity ofrecida con la llave primaria
}

El siguiente código creará una entidad con las entidades relativas manager y employer.

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

Puede igualmente utilizar una entidad relativa ofrecida en forma de objeto:

{
    "firstName": "Marie",
    "lastName": "Lechat",
    "salary": 68400,
    "birthDate": "1971-09-03T00:00:00.000Z",
    "woman": false,
    "employer": {// relatedEntity ofrecida en forma de objeto
        "__KEY": "21"
    },
    "manager": {// relatedEntity fofrecida en forma de objeto
        "__KEY": "411"
    }
}



Ver también 

entity.toObject( )

 
PROPIEDADES 

Producto: 4D
Tema: ORDA - Entity

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)