Spring Data - Metode CrudRepository save ()

1. Ikhtisar

CrudRepository adalah antarmuka Data Musim Semi untuk operasi CRUD umum pada repositori jenis tertentu. Ini menyediakan beberapa metode di luar kotak untuk berinteraksi dengan database.

Dalam tutorial ini, kami akan menjelaskan bagaimana dan kapan menggunakan metode CrudRepository save () .

Untuk mempelajari lebih lanjut tentang repositori Spring Data, lihat artikel kami yang membandingkan CrudRepository dengan antarmuka repositori framework lainnya.

2. Dependensi

Kita harus menambahkan dependensi database Spring Data dan H2 ke file pom.xml kita :

 org.springframework.boot spring-boot-starter-data-jpa   com.h2database h2 runtime 

3. Contoh Penerapan

Mari pertama-tama buat entitas Data Musim Semi kita yang disebut MerchandiseEntity . Kelas ini akan menentukan tipe data yang akan disimpan ke database saat kita memanggil metode save () :

@Entity public class MerchandiseEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private double price; private String brand; public MerchandiseEntity() { } public MerchandiseEntity(String brand, double price) { this.brand = brand; this.price = price; } }

Selanjutnya, mari buat antarmuka CrudRepository untuk bekerja dengan MerchandiseEntity :

@Repository public interface InventoryRepository extends CrudRepository { }

Di sini kita menentukan kelas entitas dan kelas id entitas, MerchandiseEntity dan Long . Ketika sebuah instance dari repositori ini dibuat, logika yang mendasari secara otomatis akan ditempatkan untuk bekerja dengan kelas MerchandiseEntity kami .

Jadi dengan kode yang sangat sedikit, kita sudah siap untuk mulai menggunakan metode save () .

4. CrudRepository save () untuk Menambahkan Instance Baru

Mari buat instance baru dari MerchandiseEntity dan simpan ke database menggunakan InventoryRepository :

InventoryRepository repo = context .getBean(InventoryRepository.class); MerchandiseEntity pants = new MerchandiseEntity( "Pair of Pants", BigDecimal.ONE); pants = repo.save(pants);

Menjalankan ini akan membuat entri baru di tabel database untuk MerchandiseEntity . Perhatikan bahwa kami tidak pernah menentukan id . Instance ini awalnya dibuat dengan nilai nol untuk id -nya dan ketika kita memanggil metode save () , sebuah id secara otomatis dibuat.

Metode save () mengembalikan entitas yang disimpan, termasuk bidang id yang diperbarui .

5. CrudRepository save () untuk Memperbarui Instance

Kita bisa menggunakan metode save () yang sama untuk memperbarui entri yang ada di database kita . Misalkan kita telah menyimpan instance MerchandiseEntity dengan judul tertentu:

MerchandiseEntity pants = new MerchandiseEntity( "Pair of Pants", 34.99); pants = repo.save(pants); 

Tetapi kemudian kami menemukan bahwa kami ingin memperbarui harga item tersebut. Kami kemudian bisa mendapatkan entitas dari database, membuat perubahan dan menggunakan metode save () seperti sebelumnya.

Dengan asumsi kita tahu id item ( pantsId ), kita dapat menggunakan CRUDRepository metode findById untuk mendapatkan badan kami dari database:

MerchandiseEntity pantsInDB = repo.findById(pantsId).get(); pantsInDB.setPrice(44.99); repo.save(pantsInDB); 

Di sini, kami telah memperbarui entitas asli kami dengan harga baru dan menyimpan perubahan kembali ke database.

6. Kesimpulan

Dalam artikel singkat ini, kita telah membahas penggunaan metode save () CrudRepository . Metode ini dapat digunakan untuk menambahkan entri baru ke dalam database Anda serta memperbarui yang sudah ada.

Seperti biasa, kode artikel berakhir di GitHub.