Proljetni podaci - Metoda spremanja () CrudRepository

1. Pregled

CrudRepository je Sučelje Spring Data za generičke CRUD operacije na spremištu određenog tipa. Pruža nekoliko metoda za interakciju s bazom podataka.

U ovom uputstvu objasnit ćemo kako i kada koristiti CrudRepositoryuštedjeti() metoda.

Da biste saznali više o spremištima Spring Data, pogledajte naš članak koji uspoređuje CrudRepository na druga sučelja spremišta okvira.

2. Ovisnosti

Morat ćemo dodati ovisnosti Spring Data i H2 baze podataka u našu pom.xml datoteka:

 org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 vrijeme izvođenja 

3. Primjer prijave

Prvo kreirajmo naš Spring Data entitet pod nazivom MerchandiseEntity. Ovaj razred će definirajte vrste podataka koje će se zadržati u bazi podataka kada pozovemo uštedjeti() metoda:

@Entity javna klasa MerchandiseEntity {@Id @GeneratedValue (strategija = GenerationType.AUTO) private Long id; privatna dvostruka cijena; privatna marka String; public MerchandiseEntity () {} public MerchandiseEntity (robna marka, dvostruka cijena) {this.brand = brand; this.price = cijena; }}

Dalje, izradimo a CrudRepository sučelje za rad s MerchandiseEntity:

Javno sučelje @Repository InventoryRepository proširuje CrudRepository {}

Ovdje specificiramo klasu entiteta i klasu id entiteta, MerchandiseEntity i Dugo. Kada se instancira instanca ovog spremišta, temeljna logika automatski će biti na mjestu za rad s našim MerchandiseEntity razred.

Dakle, s vrlo malo koda, već smo spremni početi koristiti uštedjeti() metoda.

4. CrudRepository save () za dodavanje nove instance

Stvorimo novu instancu MerchandiseEntity i spremite ga u bazu podataka pomoću InventoryRepository:

InventoryRepository repo = context .getBean (InventoryRepository.class); MerchandiseEntity hlače = nove MerchandiseEntity ("Par hlača", BigDecimal.ONE); hlače = repo.save (hlače);

Pokretanjem ovoga stvorit će se novi unos u tablici baze podataka za MerchandiseEntity. Primijetite da nikada nismo naveli iskaznica. Instanca se u početku kreira s null vrijednost za svoj iskaznica a kad nazovemo uštedjeti() metoda, an iskaznica automatski se generira.

The uštedjeti() metoda vraća spremljeni entitet, uključujući ažurirani iskaznica polje.

5. CrudRepository save () za ažuriranje instance

Možemo se poslužiti istom metodom save () za ažuriranje postojećeg unosa u našoj bazi podataka. Pretpostavimo da smo spasili a MerchandiseEntity primjer s određenim naslovom:

MerchandiseEntity hlače = nove MerchandiseEntity ("Par hlača", 34,99); hlače = repo.save (hlače); 

Ali kasnije smo otkrili da želimo ažurirati cijenu predmeta. Tada bismo mogli jednostavno uzeti entitet iz baze podataka, izvršiti promjenu i koristiti uštedjeti() metoda kao i prije.

Pod pretpostavkom da znamo iskaznica stavke (hlačeId), možemo koristiti CRUDRepository metoda findById da bismo dobili naš entitet iz baze podataka:

MerchandiseEntity hlačeInDB = repo.findById (pantsId) .get (); hlačeInDB.setPrice (44,99); repo.save (pantsInDB); 

Ovdje smo ažurirali naš izvorni entitet novom cijenom i promjene spremili natrag u bazu podataka.

6. Zaključak

U ovom smo kratkom članku pokrili upotrebu CrudRepositoryMetoda 's save (). Ovom se metodom može dodati novi unos u vašu bazu podataka, kao i ažurirati postojeći.

Kao i obično, kod za članak je završen na GitHubu.