Creazione di entità e repository
Definisca le entità JPA per rappresentare il modello dei dati e utilizzi i repository Spring Data per accedere ai dati.
Creazione di entità e repository è una lezione Spring Boot 4 Microservices & REST APIs gratuita su CoddyKit. Questa è la lezione 3 di 6. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Spring Boot 4 Microservices & REST APIs, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Spring Boot 4 Microservices & REST APIs include 6 lezioni in totale.
Che cosa sono le entità JPA?
Benvenuto nella creazione del modello di dati. In Spring Boot con JPA, un'Entity è un semplice oggetto Java che rappresenta una tabella del database.
È come un modello per le righe della tabella. Ogni istanza di una classe entità corrisponde a una singola riga nella tabella del database.
Indicare una classe come entità
Per comunicare a Spring Boot che una classe Java è un'entità, utilizziamo l'annotazione @Entity. Questa annotazione proviene dalla Java Persistence API (JPA).
Quando Spring rileva @Entity, sa di dover mappare la classe a una tabella del database. Per impostazione predefinita, il nome della tabella sarà uguale a quello della classe (ad esempio, una classe Product viene mappata a una tabella Product).
Definire le chiavi primarie con @Id
Ogni tabella del database necessita di una chiave primaria per identificare univocamente ogni record. In JPA, indichiamo un campo come chiave primaria usando l'annotazione @Id.
Spesso desideriamo che sia il database a generare automaticamente questo ID. A tale scopo utilizziamo l'annotazione @GeneratedValue, in genere con una strategia come IDENTITY per i numeri autoincrementanti.
La prima entità Product
Creiamo una semplice entità Product. Avrà un ID, un nome e un prezzo. Noti le annotazioni @Entity, @Id e @GeneratedValue.
Ricordi di includere un costruttore predefinito e i getter/setter affinché JPA funzioni correttamente.
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 +
'}';
}
}Introduzione ai repository Spring Data
Ora che disponiamo di un'entità, come interagiamo con il database per salvare, recuperare, aggiornare o eliminare i prodotti? È qui che entrano in gioco i Repository!
Spring Data JPA offre un'astrazione potente che semplifica l'accesso ai dati. Invece di scrivere query SQL complesse, è sufficiente definire semplici interfacce.
L'interfaccia JpaRepository
Il fulcro di Spring Data JPA è l'interfaccia JpaRepository. Quando l'interfaccia del repository estende JpaRepository, Spring fornisce automaticamente i metodi CRUD standard (Create, Read, Update, Delete) per l'entità.
È sufficiente specificare il tipo di entità e il tipo della relativa chiave primaria, come segue: JpaRepository<YourEntity, ID_Type>.
Definizione del repository Product
Creiamo un repository per la nostra entità Product. Si tratta semplicemente di un'interfaccia che estende JpaRepository, indicando a Spring di generare per noi il codice necessario.
Specifichiamo Product come tipo di entità e Long come tipo della chiave primaria.
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.
}Utilizzo dei repository in Spring
In un'applicazione Spring Boot, in genere si esegue l'iniezione del repository in un servizio o in un controller utilizzando @Autowired. Dopodiché è possibile chiamare i metodi integrati.
repository.save(product): salva un nuovo prodotto o aggiorna un prodotto esistente.repository.findById(id): trova un prodotto in base al relativo ID.repository.findAll(): recupera tutti i prodotti.
Entità e repository in azione
Ecco un esempio concettuale che mostra come viene creata un'entità e come un repository la salverebbe. Simuliamo il comportamento del repository per poter eseguire l'esempio senza una configurazione completa di Spring Boot.
L'esempio mostra la creazione di un oggetto Product e l'utilizzo di un metodo 'save'.
// --- 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);
}
}Verifica rapida: concetti fondamentali
Quale delle seguenti annotazioni viene utilizzata per contrassegnare una classe come entità JPA associata a una tabella del database?
Riepilogo: entità e repository
Ha appreso i fondamenti della definizione del modello dei dati con Spring Data JPA!
- Le entità sono oggetti Java che rappresentano le tabelle del database e sono contrassegnate con
@Entity. - Le chiavi primarie vengono definite con
@Ide spesso generate automaticamente utilizzando@GeneratedValue. - I repository sono interfacce che estendono
JpaRepositorye forniscono metodi potenti e pronti all'uso per interagire con il database.
Questi due concetti sono i pilastri della persistenza dei dati in Spring Boot.
Impara Java con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 24
- Lezioni
- 93
Domande Frequenti
La lezione «Creazione di entità e repository» è gratuita?
Sì — il testo completo di «Creazione di entità e repository» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Spring Boot 4 Microservices & REST APIs, passa a CoddyKit PRO. Il corso Spring Boot 4 Microservices & REST APIs include 6 lezioni in totale.
Cosa imparerò in «Creazione di entità e repository»?
Definisca le entità JPA per rappresentare il modello dei dati e utilizzi i repository Spring Data per accedere ai dati. Eserciti Spring Boot 4 Microservices & REST APIs con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Spring Boot 4 Microservices & REST APIs?
Non è richiesta alcuna esperienza precedente. Spring Boot 4 Microservices & REST APIs su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 6.
Quanto tempo richiede la lezione «Creazione di entità e repository»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Spring Boot 4 Microservices & REST APIs?
Sì. Ogni lezione Spring Boot 4 Microservices & REST APIs include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Integrazione del database H2 e di JPA
- Introduzione a Spring Data JPA
- Creazione di entità e repository
- Definire entità e repository
- Operazioni CRUD con REST
- Eseguire operazioni CRUD