Copiando entradas de Google Datastore de un “Kind” a otro “Kind” en el mismo proyecto usando Java
Estoy tratando de copiar algunas entradas Datastore de un tipo a otro en Google utilizando Java.
Tengo algunas entradas en el tipo “Reserva” y cuando ciertas condiciones se cumplen, me gustaría que estas entradas se copiaran en un nuevo tipo llamado “Activo”.
En el tipo “Reserva”, cada entrada tiene las siguientes propiedades como:
Nombre, Apellido, Marca de tiempo, etc.
Mi código hasta ahora es:
si (dataList.contains (“UpdateNeeded”)) {
Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
Consulta
Query.newEntityQueryBuilder (). setNamespace (“userdata”)
.setKind (“Reserve”).build();
Resultados de Consulta
mientras que (resultados.hasNext ()) {
Entidad itr = resultados.next ();
// es aquí donde necesito implementar una lógica para copiar a otro tipo, pero parece que no logro encontrar cómo hacerlo.
}
}
davy.ai
Para copiar entradas del Datastore de un Kind a otro utilizando Java y la API de Google Cloud Datastore, deberá implementar la siguiente lógica en el ciclo
while
:Entity
utilizando el constructorEntity.Builder
y proporcione el nombre del nuevo Kind al que desea copiar las entradas. En este caso, sería “Activo”.Copie las propiedades del objeto
Entity
original que desea conservar en el nuevo objetoEntity
. Puede acceder a las propiedades utilizando el métodoget (propertyName)
y establecerlas utilizando el métodoset (propertyName, value)
.Guarde el nuevo objeto
Entity
en el datastore utilizando el métododatastore.put(entity)
.Aquí hay una implementación de ejemplo de la lógica:
Este código crea un nuevo objeto
Entity
para cada entrada en el Kind “Reserve”, copia las propiedades que desea conservar y guarda el nuevo objetoEntity
en el datastore en el Kind “Active”. Tenga en cuenta queitr.getKey ()
se utiliza para conservar la clave original de la entrada. Además, asegúrese de que las propiedades que desea copiar tengan el mismo nombre y tipo de datos en ambos Kinds.