Spring Data - CrudRepository save () methode

1. Overzicht

CrudRepository is een Spring Data-interface voor generieke CRUD-bewerkingen op een repository van een specifiek type. Het biedt verschillende methoden voor interactie met een database.

In deze zelfstudie leggen we uit hoe en wanneer u de CrudRepositorysparen() methode.

Bekijk ons ​​artikel dat vergelijkt voor meer informatie over Spring Data-opslagplaatsen CrudRepository naar andere repository-interfaces van het framework.

2. Afhankelijkheden

We zullen Spring Data- en H2-database-afhankelijkheden moeten toevoegen aan onze pom.xml het dossier:

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

3. Voorbeeldtoepassing

Laten we eerst onze Spring Data-entiteit maken met de naam MerchandiseEntity. Deze klas zal definieer de gegevenstypen die in de database worden bewaard wanneer we het sparen() methode:

@Entity openbare klasse MerchandiseEntity {@Id @GeneratedValue (strategy = GenerationType.AUTO) privé Lange id; particuliere dubbele prijs; private String merk; openbare MerchandiseEntity () {} openbare MerchandiseEntity (String-merk, dubbele prijs) {this.brand = merk; this.price = prijs; }}

Laten we vervolgens een CrudRepository interface om te werken met de MerchandiseEntity:

@Repository openbare interface InventoryRepository breidt CrudRepository uit {}

Hier specificeren we de klasse van de entiteit en de klasse van de entiteits-id, MerchandiseEntity en Lang. Wanneer een instantie van deze repository wordt geïnstantieerd, is de onderliggende logica automatisch aanwezig om met onze MerchandiseEntity klasse.

Met heel weinig code zijn we dus al klaar om het sparen() methode.

4. CrudRepository save () om een ​​nieuw exemplaar toe te voegen

Laten we een nieuw exemplaar maken van MerchandiseEntity en sla het op in de database met de Inventaris Opslagplaats:

InventoryRepository repo = context .getBean (InventoryRepository.class); MerchandiseEntity broek = nieuwe MerchandiseEntity ("Paar broek", BigDecimal.ONE); pants = repo.save (broek);

Als u dit uitvoert, wordt een nieuw item in de databasetabel voor gemaakt MerchandiseEntity. Merk op dat we nooit een ID kaart. De instantie wordt in eerste instantie gemaakt met een nul waarde voor zijn ID kaart en als we de sparen() methode, een ID kaart wordt automatisch gegenereerd.

De sparen() methode retourneert de opgeslagen entiteit, inclusief de bijgewerkte ID kaart veld.

5. CrudRepository save () om een ​​instantie bij te werken

We kunnen dezelfde methode save () gebruiken om een ​​bestaand item in onze database bij te werken. Stel dat we een MerchandiseEntity instantie met een specifieke titel:

MerchandiseEntity-broek = nieuwe MerchandiseEntity ("Paar broeken", 34,99); pants = repo.save (broek); 

Maar later ontdekten we dat we de prijs van het artikel wilden bijwerken. We kunnen dan eenvoudig de entiteit uit de database halen, de wijziging aanbrengen en de sparen() methode zoals eerder.

Ervan uitgaande dat we de ID kaart van het item (broekId), kunnen we de CRUDRepository methode findById om onze entiteit uit de database te halen:

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

Hier hebben we onze oorspronkelijke entiteit bijgewerkt met een nieuwe prijs en de wijzigingen opgeslagen in de database.

6. Conclusie

In dit korte artikel hebben we het gebruik van CrudRepository‘S save () methode. Deze methode kan worden gebruikt om een ​​nieuw item aan uw database toe te voegen en om een ​​bestaand item bij te werken.

Zoals gewoonlijk is de code voor het artikel voorbij op GitHub.