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
14
pom.xml
14
pom.xml
|
@ -70,10 +70,16 @@
|
|||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>5.12.2</version>
|
||||
<scope>test</scope>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>5.12.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.38</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
|
|
@ -4,49 +4,43 @@ import jakarta.persistence.Column;
|
|||
import jakarta.persistence.EmbeddedId;
|
||||
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
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Preference {
|
||||
|
||||
// Clé primaire composite, intégrée directement dans cette entité.
|
||||
@EmbeddedId
|
||||
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;
|
||||
|
||||
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){
|
||||
super();
|
||||
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;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
|
||||
import jakarta.persistence.Embeddable;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
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 {
|
||||
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
|
||||
@PrimaryKeyJoinColumn(name = "personne_id", referencedColumnName = "id_personne")
|
||||
@JsonBackReference("personne")
|
||||
public Personne getPersonne() {
|
||||
return personne;
|
||||
}
|
||||
|
||||
public void setPersonne(Personne personne) {
|
||||
this.personne = personne;
|
||||
}
|
||||
@JsonBackReference("personne-preferencepk")
|
||||
private Personne personne;
|
||||
|
||||
// Clé étrangère vers l'entité Restaurant
|
||||
@ManyToOne
|
||||
@PrimaryKeyJoinColumn(name="id_restau",referencedColumnName ="id_restau" )
|
||||
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
|
||||
public Restaurant getRestau() {
|
||||
return restau;
|
||||
}
|
||||
|
||||
public void setRestau(Restaurant restau) {
|
||||
this.restau = restau;
|
||||
}
|
||||
private Restaurant restau;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue