Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

Entiteettien ja repositorioiden luominen

Määritelkää JPA-entiteetit tietomallinne kuvaamiseen ja käyttäkää Spring Data -repositorioita tietojen käsittelyyn.

Oppitunti 3/611 vaihetta

Entiteettien ja repositorioiden luominen on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 3/6. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 6 oppituntia.

Mitä JPA-entiteetit ovat?

Tervetuloa tietomallin luomisen pariin! Spring Bootissa ja JPA:ssa entiteetti on tavallinen Java-olio, joka edustaa tietokannan taulua.

Ajatelkaa sitä taulun rivien mallina. Kukin entiteettiluokan ilmentymä vastaa yhtä tietokantataulun riviä.

Luokan merkitseminen entiteetiksi

Kertoaksemme Spring Bootille, että Java-luokka on entiteetti, käytämme annotaatiota @Entity. Tämä annotaatio tulee Java Persistence API:sta (JPA).

Kun Spring havaitsee annotaation @Entity, se tietää yhdistää luokan tietokantatauluun. Oletuksena taulun nimi on sama kuin luokan nimi (esimerkiksi luokka Product yhdistetään tauluun Product).

Ensisijaisten avainten määrittäminen @Id-annotaatiolla

Jokainen tietokantataulu tarvitsee ensisijaisen avaimen, joka yksilöi jokaisen tietueen. JPA:ssa merkitsemme kentän ensisijaiseksi avaimeksi annotaatiolla @Id.

Usein haluamme tietokannan luovan tämän tunnisteen automaattisesti. Tähän käytämme annotaatiota @GeneratedValue, yleensä strategialla IDENTITY, joka tuottaa automaattisesti kasvavia numeroita.

Ensimmäinen Product-entiteettimme

Luodaan yksinkertainen Product-entiteetti. Se sisältää tunnisteen, nimen ja hinnan. Huomaatte annotaatiot @Entity, @Id ja @GeneratedValue.

Muistakaa lisätä oletusrakentaja sekä getter- ja setter-metodit, jotta JPA toimii oikein.

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private double price;

    public Product() {}

    public Product(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price = price; }

    @Override
    public String toString() {
        return "Product{" +
               "id=" + id +
               ", name='" + name + '\'' +
               ", price=" + price +
               '}';
    }
}

Spring Data -tietovarastojen esittely

Nyt kun meillä on entiteetti, miten olemme vuorovaikutuksessa tietokannan kanssa tuotteiden tallentamiseksi, hakemiseksi, päivittämiseksi tai poistamiseksi? Tässä repositoryt tulevat mukaan!

Spring Data JPA tarjoaa tehokkaan abstraktion, joka yksinkertaistaa tietojen käyttöä. Monimutkaisten SQL-kyselyiden kirjoittamisen sijaan määrittelette yksinkertaisia rajapintoja.

JpaRepository-rajapinta

Spring Data JPAn ydin on JpaRepository-rajapinta. Kun repository-rajapintanne laajentaa JpaRepository-rajapintaa, Spring tarjoaa entiteetillenne automaattisesti tavalliset CRUD (Create, Read, Update, Delete) -metodit.

Teidän tarvitsee määrittää vain entiteetin tyyppi ja sen pääavaimen tyyppi, esimerkiksi näin: JpaRepository<YourEntity, ID_Type>.

Product-repositoryn määrittäminen

Luodaan repository Product-entiteetillemme. Se on vain rajapinta, joka laajentaa JpaRepository-rajapintaa ja pyytää Springiä luomaan tarvittavan koodin puolestamme.

Määritämme entiteetin tyypiksi Product ja pääavaimen tyypiksi Long.

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
    // Spring Data JPA automatically provides methods like:
    // save(), findById(), findAll(), deleteById(), etc.
}

Repositoryjen käyttäminen Springissä

Spring Boot -sovelluksessa repository injektoidaan yleensä palveluun tai controlleriin käyttämällä @Autowired-annotaatiota. Tämän jälkeen voitte kutsua valmiita metodeja.

  • repository.save(product): Tallentaa uuden tuotteen tai päivittää olemassa olevan tuotteen.
  • repository.findById(id): Hakee tuotteen sen ID:n perusteella.
  • repository.findAll(): Hakee kaikki tuotteet.

Entiteetti ja repository käytännössä

Tässä on käsitteellinen esimerkki, joka näyttää, miten entiteetti luodaan ja miten repository tallentaisi sen. Simuloimme repositoryn toimintaa, jotta esimerkki voidaan suorittaa ilman täydellistä Spring Boot -asetusta.

Esimerkki havainnollistaa Product-olion luomista ja 'save'-metodin käyttämistä.

// --- Simulated Product Entity --- //
class Product {
    private Long id;
    private String name;
    private double price;

    public Product(Long id, String name, double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }
    // Getters and Setters (simplified for brevity)
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public double getPrice() { return price; }
    public void setPrice(double price) { this.price = price; }

    @Override
    public String toString() {
        return "Product{id=" + id + ", name='" + name + "', price=" + price + "}";
    }
}

// --- Simulated Product Repository Interface --- //
interface ProductRepository {
    Product save(Product product);
}

// --- Simulated Product Repository Implementation --- //
class SimpleProductRepository implements ProductRepository {
    private static Long nextId = 1L;
    @Override
    public Product save(Product product) {
        if (product.getId() == null) {
            product.setId(nextId++); // Assign a new ID
        }
        System.out.println("Simulating save: " + product);
        return product;
    }
}

public class Main {
    public static void main(String[] args) {
        // 1. Create a Product entity instance
        Product newProduct = new Product(null, "Wireless Earbuds", 99.99);
        System.out.println("Created product: " + newProduct);

        // 2. Simulate saving it using our repository
        ProductRepository repository = new SimpleProductRepository();
        Product savedProduct = repository.save(newProduct);

        System.out.println("Product after simulated save: " + savedProduct);
    }
}

Pikakertaus: keskeiset käsitteet

Mitä seuraavista annotaatioista käytetään luokan merkitsemiseen JPA-entiteetiksi, joka yhdistetään tietokantatauluun?

Kertaus: entiteetit ja repositoryt

Olette oppineet Spring Data JPAn avulla määritettävän tietomallin perusteet!

  • Entiteetit ovat tietokantatauluja edustavia Java-olioita, jotka merkitään annotaatiolla @Entity.
  • Pääavaimet määritetään annotaatiolla @Id, ja ne luodaan usein automaattisesti annotaatiolla @GeneratedValue.
  • Repositoryt ovat JpaRepository-rajapintaa laajentavia rajapintoja, jotka tarjoavat tehokkaita, valmiita metodeja tietokannan käsittelyyn.

Nämä kaksi käsitettä muodostavat Spring Bootin tietojen pysyvän tallennuksen perustan.

Aloita maksutta

Opi Java tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”Entiteettien ja repositorioiden luominen” ilmainen?

Kyllä – oppitunnin ”Entiteettien ja repositorioiden luominen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 6 oppituntia.

Mitä opin oppitunnilla ”Entiteettien ja repositorioiden luominen”?

Määritelkää JPA-entiteetit tietomallinne kuvaamiseen ja käyttäkää Spring Data -repositorioita tietojen käsittelyyn. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/6.

Kuinka kauan ”Entiteettien ja repositorioiden luominen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. H2-tietokannan ja JPA:n integrointi
  2. Johdatus Spring Data JPA:han
  3. Entiteettien ja repositorioiden luominen
  4. Entiteettien ja repositorioiden määrittäminen
  5. CRUD-operaatiot RESTillä
  6. CRUD-operaatioiden suorittaminen
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät