Premieres corrections en utilisant les annotations lombock
This commit is contained in:
parent
7d20b28544
commit
95b967e682
3 changed files with 64 additions and 67 deletions
6
pom.xml
6
pom.xml
|
@ -75,6 +75,12 @@
|
||||||
<version>5.12.2</version>
|
<version>5.12.2</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.38</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -4,49 +4,43 @@ import jakarta.persistence.Column;
|
||||||
import jakarta.persistence.EmbeddedId;
|
import jakarta.persistence.EmbeddedId;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entité représentant les préférences d'un utilisateur (Personne) pour un restaurant (Restaurant).
|
||||||
|
* Utilise une clé primaire composite {@link PreferencePK}.
|
||||||
|
*/
|
||||||
@Entity
|
@Entity
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class Preference {
|
public class Preference {
|
||||||
|
|
||||||
|
// Clé primaire composite, intégrée directement dans cette entité.
|
||||||
|
@EmbeddedId
|
||||||
private PreferencePK preferencePK;
|
private PreferencePK preferencePK;
|
||||||
private int note;
|
|
||||||
|
// Note attribuée par l'utilisateur au restaurant. Peut être nulle.
|
||||||
|
// Le type Integer est utilisé pour permettre la nullité (non noté).
|
||||||
|
@Column // Par défaut, nullable = true pour Integer
|
||||||
|
private Integer note;
|
||||||
|
|
||||||
|
// Indique si le restaurant est marqué comme favori par l'utilisateur.
|
||||||
|
// boolean primitif, donc non nullable par défaut en base (false si non spécifié).
|
||||||
|
@Column
|
||||||
private boolean favoris;
|
private boolean favoris;
|
||||||
|
|
||||||
public Preference() {
|
/**
|
||||||
super();
|
* Constructeur partiel pour initialiser avec la clé primaire.
|
||||||
}
|
* Ce constructeur est conservé car @AllArgsConstructor ne couvre pas ce cas spécifique
|
||||||
|
* si vous souhaitez initialiser uniquement avec la clé.
|
||||||
|
* Si @AllArgsConstructor suffit, vous pouvez supprimer celui-ci.
|
||||||
|
*/
|
||||||
public Preference(PreferencePK preferencePK){
|
public Preference(PreferencePK preferencePK){
|
||||||
super();
|
|
||||||
this.preferencePK = preferencePK;
|
this.preferencePK = preferencePK;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Preference(PreferencePK preferencePK, int note, boolean favoris) {
|
|
||||||
super();
|
|
||||||
this.preferencePK = preferencePK;
|
|
||||||
this.note = note;
|
|
||||||
this.favoris = favoris;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EmbeddedId
|
|
||||||
public PreferencePK getPreferencePK() {
|
|
||||||
return preferencePK;
|
|
||||||
}
|
|
||||||
public void setPreferencePK(PreferencePK preferencePK) {
|
|
||||||
this.preferencePK = preferencePK;
|
|
||||||
}
|
|
||||||
@Column(nullable = true)
|
|
||||||
public int getNote() {
|
|
||||||
return note;
|
|
||||||
}
|
|
||||||
public void setNote(int note) {
|
|
||||||
this.note = note;
|
|
||||||
}
|
|
||||||
@Column(nullable = true)
|
|
||||||
public boolean isFavori() {
|
|
||||||
return favoris;
|
|
||||||
}
|
|
||||||
public void setFavori(boolean favoris) {
|
|
||||||
this.favoris = favoris;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,47 +1,44 @@
|
||||||
package fr.vincent.ramiere.mangerautourdesimplonback.models;
|
package fr.vincent.ramiere.mangerautourdesimplonback.models;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
|
||||||
|
import jakarta.persistence.Embeddable;
|
||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.PrimaryKeyJoinColumn;
|
import jakarta.persistence.PrimaryKeyJoinColumn;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Classe représentant la clé primaire composite pour l'entité {@link Preference}.
|
||||||
|
* Elle est composée d'une référence à une {@link Personne} et à un {@link Restaurant}.
|
||||||
|
* Cette classe doit implémenter {@link Serializable} et redéfinir {@code equals()} et {@code hashCode()}.
|
||||||
|
*/
|
||||||
|
@Embeddable
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@EqualsAndHashCode
|
||||||
public class PreferencePK implements Serializable {
|
public class PreferencePK implements Serializable {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private Personne personne;
|
|
||||||
private Restaurant restau;
|
|
||||||
|
|
||||||
public PreferencePK() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
public PreferencePK(Personne personne, Restaurant restau) {
|
|
||||||
super();
|
|
||||||
this.personne = personne;
|
|
||||||
this.restau = restau;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Clé étrangère vers l'entité Personne
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@PrimaryKeyJoinColumn(name = "personne_id", referencedColumnName = "id_personne")
|
@PrimaryKeyJoinColumn(name = "personne_id", referencedColumnName = "id_personne")
|
||||||
@JsonBackReference("personne")
|
@JsonBackReference("personne-preferencepk")
|
||||||
public Personne getPersonne() {
|
private Personne personne;
|
||||||
return personne;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPersonne(Personne personne) {
|
|
||||||
this.personne = personne;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// Clé étrangère vers l'entité Restaurant
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@PrimaryKeyJoinColumn(name="id_restau",referencedColumnName ="id_restau" )
|
@PrimaryKeyJoinColumn(name="id_restau",referencedColumnName ="id_restau" )
|
||||||
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
|
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
|
||||||
public Restaurant getRestau() {
|
private Restaurant restau;
|
||||||
return restau;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRestau(Restaurant restau) {
|
|
||||||
this.restau = restau;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue