Membuat, Mengambil, Memperbarui, dan Menghapus Entity

Objek data di Datastore dikenal sebagai entity, yang masing-masing dikategorikan berdasarkan jenis tertentu untuk tujuan kueri. Misalnya, jika Anda menulis aplikasi sumber daya manusia, Anda dapat mewakili setiap karyawan dengan entity jenis Employee. Perhatikan bahwa nilai data entity tersedia dalam bentuk properti. Untuk mengetahui informasi selengkapnya tentang entity, lihat dokumen konsep Entity, Properti, dan Kunci.

Membuat entity dan menyetel properti

Di Java, Anda membuat entity baru dengan membuat instance class Entity yang menyediakan jenis entity sebagai argumen ke Entity() konstruktor. Setelah mengisi properti entity jika perlu, Anda menyimpannya ke datastore dengan meneruskannya sebagai argumen ke metode DatastoreService.put(). Anda dapat menentukan nama kunci entity dengan meneruskannya sebagai argumen kedua ke konstruktor.

Contoh berikut membuat entity jenis Employee, mengisi nilai propertinya, dan menyimpannya ke penyimpanan data:

Entity employee = new Entity("Employee", "asalieri");
employee.setProperty("firstName", "Antonio");
employee.setProperty("lastName", "Salieri");
employee.setProperty("hireDate", new Date());
employee.setProperty("attendedHrTraining", true);

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(employee);

Perlu diperhatikan bahwa jika Anda tidak memberikan nama kunci, Datastore akan otomatis membuat ID numerik untuk kunci entity tersebut:

Entity employee = new Entity("Employee");
// Set the entity properties.
// ...
datastore.put(employee);

Mengambil entity

Untuk mengambil entity yang diidentifikasi oleh kunci tertentu, teruskan objek Key ke metode DatastoreService.get():

// Key employeeKey = ...;
Entity employee = datastore.get(employeeKey);

Mengupdate entity

Untuk memperbarui entity yang ada, ubah atribut objek Entity, lalu teruskan ke metode DatastoreService.put(). Data objek akan menimpa entity yang ada. Seluruh objek dikirim ke Datastore pada setiap panggilan ke put().

Entity employee = new Entity("Employee", "asalieri");
employee.setProperty("firstName", "Antonio");
employee.setProperty("lastName", "Salieri");
employee.setProperty("hireDate", new Date());
employee.setProperty("attendedHrTraining", true);

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
datastore.put(employee);

Menghapus entity

Dengan mempertimbangkan kunci entity, Anda dapat menghapus entity dengan metode DatastoreService.delete():

// Key employeeKey = ...;
datastore.delete(employeeKey);

Menghapus entity secara massal

Jika Anda perlu menghapus entity dalam jumlah besar, sebaiknya gunakan Dataflow untuk menghapus entity secara massal.

Menggunakan operasi batch

Anda dapat menggunakan operasi batch jika ingin beroperasi di beberapa entity dalam satu panggilan Datastore.

Berikut adalah contoh panggilan batch:

Entity employee1 = new Entity("Employee");
Entity employee2 = new Entity("Employee");
Entity employee3 = new Entity("Employee");
// ...

List<Entity> employees = Arrays.asList(employee1, employee2, employee3);
datastore.put(employees);

Operasi batch ini mengelompokkan semua entity atau kunci menurut entity group, lalu melakukan operasi yang diminta pada setiap entity group secara paralel, yang lebih cepat daripada melakukan panggilan terpisah untuk setiap entity individu karena biaya overhead akan dikenai hanya untuk satu panggilan layanan. Jika batch menggunakan beberapa entity group, pekerjaan untuk semua grup akan dilakukan secara paralel di sisi server.

Panggilan batch put() atau delete() mungkin berhasil untuk beberapa entity, tetapi tidak untuk yang lainnya. Jika panggilan harus berhasil sepenuhnya atau gagal sepenuhnya, gunakan transaksi dengan semua entity yang terpengaruh dalam entity group yang sama.