Vårdata - CrudRepository save () -metode

1. Oversikt

CrudRepository er en Spring Data-grensesnitt for generiske CRUD-operasjoner på et arkiv av en bestemt type. Det gir flere metoder ut av boksen for samhandling med en database.

I denne opplæringen forklarer vi hvordan og når du skal bruke CrudRepositorylagre() metode.

For å lære mer om Spring Data-repositorier, se på artikkelen vår som sammenligner CrudRepository til andre repositorgrensesnitt i rammeverket.

2. Avhengigheter

Vi må legge til avhengighet av vårdata og H2-databaser i vår pom.xml fil:

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

3. Eksempel på applikasjon

La oss først opprette vår Spring Data-enhet kalt MerchandiseEntity. Denne klassen vil definere datatypene som blir vedvarende i databasen når vi kaller lagre() metode:

@Entity offentlig klasse MerchandiseEntity {@Id @GeneratedValue (strategi = GenerationType.AUTO) privat Lang id; privat dobbel pris; private String merkevare; public MerchandiseEntity () {} public MerchandiseEntity (String merke, dobbel pris) {this.brand = merke; dette.pris = pris; }}

La oss deretter lage en CrudRepository grensesnitt for å jobbe med MerchandiseEntity:

@Repository offentlig grensesnitt InventoryRepository utvider CrudRepository {}

Her spesifiserer vi enhetens klasse og enhetens ID-klasse, MerchandiseEntity og Lang. Når en forekomst av dette depotet instantieres, vil den underliggende logikken automatisk være på plass for å jobbe med vår MerchandiseEntity klasse.

Så med veldig lite kode er vi allerede klare til å begynne å bruke lagre() metode.

4. CrudRepository lagre () for å legge til en ny forekomst

La oss lage en ny forekomst av MerchandiseEntity og lagre den i databasen ved hjelp av InventoryRepository:

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

Å kjøre dette vil opprette en ny oppføring i databasetabellen for MerchandiseEntity. Legg merke til at vi aldri spesifiserte en id. Forekomsten ble opprinnelig opprettet med en null verdi for sin id og når vi kaller lagre() metode, en id genereres automatisk.

De lagre() metoden returnerer den lagrede enheten, inkludert den oppdaterte id felt.

5. CrudRepository lagre () for å oppdatere en forekomst

Vi kan bruke den samme save () -metoden for å oppdatere en eksisterende oppføring i databasen vår. Anta at vi hadde reddet en MerchandiseEntity forekomst med en bestemt tittel:

MerchandiseEntity bukser = nye MerchandiseEntity ("Pair of Pants", 34.99); bukser = repo.save (bukser); 

Men senere fant vi ut at vi ønsket å oppdatere prisen på varen. Vi kan da bare hente enheten fra databasen, gjøre endringen og bruke lagre() metode som før.

Forutsatt at vi vet id av varen (bukserId), kan vi bruke CRUD Depot metode findById for å få enheten vår fra databasen:

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

Her har vi oppdatert vår opprinnelige enhet med en ny pris og lagret endringene tilbake i databasen.

6. Konklusjon

I denne raske artikkelen har vi dekket bruken av CrudRepository‘S save () -metode. Denne metoden kan brukes til å legge til en ny oppføring i databasen din, samt å oppdatere en eksisterende.

Som vanlig er koden for artikkelen over på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found