JPA Flashcards
Notazione @Basic cosa significa?
@Basic diciamo che si tratta di una colonna di un database se poi desideriamo specificare se obbligatorio @Basic(optional=false)
notazione @Id
@Id identifica il campo chiave
notazione @Column
Tale notazione viene utilizzata per identificare il nome di una colonna @Column(name=”Citta”) altri attributi sono:
nullable=true/false
unique=true/false
length=
@Column(name = “username”, nullable = false, unique = true, length = 50)
la notazione @GeneratedValue
@GeneratedValue viene utilizzata per stabilire e specificare la strategia di generazione dei valori per i campi chiave primaria di un’entità.
la notazione @GeneratedValue(strategy = GenerationType.AUTO)
sceglierà automaticamente la strategia di generazione basandosi sulle capacità del database.
@GeneratedValue(strategy = GenerationType.IDENTITY)
il database sarà responsabile della generazione dei valori per l’ID usando una colonna auto-incrementata.
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “user_seq”)
In questo esempio, viene utilizzata una sequenza chiamata “user_sequence” per generare i valori dell’ID
Cosa significa tabella dizionario?
Sono quelle tabelle che non vengono modificate
Nella Notazione OneToMany quali sono le 4 PROPRIETA?
fetch
cascade=
mappedBy=
otphanRemoval=
Nella Notazione OneToMany(fetch=FetchType.Eager) che significa?
@OneToMany(fetch = FetchType.EAGER) è una configurazione che forza il caricamento immediato delle entità correlate, quando si carica un’entità padre. Questo può semplificare l’accesso ai dati correlati.
nella notazione @OneToMany( cascade=CascateType.ALL
viene utilizzata per specificare che le operazioni di persistenza effettuate sull’entità padre devono essere propagate alle entità figlio.
nella notazione @OneToMany( mappedBy=”promo”
In altre parole, mappedBy contiene il nome della Variabile definita nella tabella di destinazione. Il tipo variabile è di tipo della tabella di partenza.Dall esempio andiamo a settare mappedBy=”promo” (che vive dentro alla classe PROMO) . Dentro la classe DETTPROMO scriviamo una variabile così definita: private Promo promo; Attenzione!! la variabile deve essere deve essere con la notazione @ManyToOne
private Promo promo
@OneToMany(orphanRemoval=true)
L’uso di orphanRemoval = true in una relazione @OneToMany consente di semplificare la gestione delle entità figlio, assicurando che le entità figlio “orfane” vengano rimosse automaticamente dal database quando non sono più referenziate dall’entità padre.
nella notazione:
@ManyToOne
@JoinColumn(name=”IDPROMO”,referenceColumnName=”idPromo”) cosa significa?
@JoinColumn(name = “IDPROMO”, referencedColumnName = “idPromo”):
name: Specifica il nome della colonna nella tabella corrente che
funge da chiave esterna.
referencedColumnName: Specifica il nome della colonna nella
tabella dell’entità di destinazione a cui la chiave esterna fa
riferimento.
cosa è la @JsonManagedReference e la @JsonBackReference ?
@JsonManagedReference e @JsonBackReference sono annotazioni fornite dalla libreria Jackson per la serializzazione/deserializzazione JSON in Java. Vengono utilizzate per gestire correttamente le relazioni bidirezionali tra entità e prevenire problemi di ricorsione infinita durante la serializzazione JSON.