From 113fd0f3a5165eeffee680f3f421fec4e89c6f8a Mon Sep 17 00:00:00 2001 From: "fabien.le-houedec" Date: Wed, 11 Feb 2026 12:26:10 +0100 Subject: [PATCH 1/2] =?UTF-8?q?1.=20Illustrer=20l'h=C3=A9ritage=20avec=20J?= =?UTF-8?q?PA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + src/main/java/jpa/EntityManagerHelper.java | 2 +- src/main/java/jpa/JpaTest.java | 102 +++++++++++++-- src/main/java/jpa/model/Administrateur.java | 40 ++++++ src/main/java/jpa/model/Concert.java | 119 ++++++++++++++++++ src/main/java/jpa/model/Organisateur.java | 61 +++++++++ src/main/java/jpa/model/Personne.java | 79 ++++++++++++ src/main/java/jpa/model/StatutTicketEnum.java | 7 ++ src/main/java/jpa/model/Ticket.java | 119 ++++++++++++++++++ src/main/java/jpa/model/Utilisateur.java | 61 +++++++++ src/main/resources/META-INF/persistence.xml | 5 +- 11 files changed, 589 insertions(+), 10 deletions(-) create mode 100644 .gitignore create mode 100644 src/main/java/jpa/model/Administrateur.java create mode 100644 src/main/java/jpa/model/Concert.java create mode 100644 src/main/java/jpa/model/Organisateur.java create mode 100644 src/main/java/jpa/model/Personne.java create mode 100644 src/main/java/jpa/model/StatutTicketEnum.java create mode 100644 src/main/java/jpa/model/Ticket.java create mode 100644 src/main/java/jpa/model/Utilisateur.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..da748ce36 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.iml +.idea/ +data/ +target/ \ No newline at end of file diff --git a/src/main/java/jpa/EntityManagerHelper.java b/src/main/java/jpa/EntityManagerHelper.java index db7a246f6..e149de1c8 100644 --- a/src/main/java/jpa/EntityManagerHelper.java +++ b/src/main/java/jpa/EntityManagerHelper.java @@ -11,7 +11,7 @@ public class EntityManagerHelper { static { emf = Persistence.createEntityManagerFactory("dev"); - threadLocal = new ThreadLocal(); + threadLocal = new ThreadLocal<>(); } public static EntityManager getEntityManager() { diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java index d11049f2e..c94fb80b9 100644 --- a/src/main/java/jpa/JpaTest.java +++ b/src/main/java/jpa/JpaTest.java @@ -3,40 +3,126 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.EntityTransaction; +import jpa.model.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; public class JpaTest { - private EntityManager manager; + private final EntityManager manager; public JpaTest(EntityManager manager) { this.manager = manager; } - /** - * @param args - */ - public static void main(String[] args) { - EntityManager manager = EntityManagerHelper.getEntityManager(); + public static void main(String[] args) { + EntityManager manager = EntityManagerHelper.getEntityManager(); JpaTest test = new JpaTest(manager); EntityTransaction tx = manager.getTransaction(); tx.begin(); try { + // Création d'un concert + 2 tickets + Concert concert = test.createConcert(); + concert.setTickets(List.of( + test.createTicket("A001", 42.0d, concert), + test.createTicket("E450", 37.5d, concert) + )); + manager.persist(concert); - // TODO create and persist entity + // Création utilisateurs + manager.persist(test.createAdministrateur()); + manager.persist(test.createOrganisateur()); + manager.persist(test.createUtilisateur()); + + System.out.println("---- LISTE DES CONCERTS ----"); + System.out.println(test.listConcert()); + System.out.println("---- LISTE DES PERSONNES ----"); + System.out.println(test.listPersonnes()); } catch (Exception e) { + tx.rollback(); e.printStackTrace(); } tx.commit(); - + manager.close(); EntityManagerHelper.closeEntityManagerFactory(); System.out.println(".. done"); } + private Utilisateur createUtilisateur() { + Utilisateur util = new Utilisateur(); + util.setNom("DUPONT"); + util.setPrenom("Michel"); + util.setDateNaissance(LocalDate.of(1990, 1, 1)); + util.setEmail("michel.dupont@yopmail.com"); + util.setDateInscription(LocalDate.now()); + util.setCreditCompte(45.0d); + util.setPreferenceNotificationEmail(false); + util.setPreferenceNotificationPush(true); + return util; + } + + private Administrateur createAdministrateur() { + Administrateur admin = new Administrateur(); + admin.setNom("LECHEF"); + admin.setPrenom("Baptiste"); + admin.setDateNaissance(LocalDate.of(1980, 7, 25)); + admin.setEmail("baptiste.lechef@yopmail.com"); + + admin.setActif(true); + admin.setDateNomination(LocalDate.of(2025, 12, 31)); + return admin; + } + + private Organisateur createOrganisateur() { + Organisateur orga = new Organisateur(); + orga.setNom("COMBOURG"); + orga.setPrenom("Adeline"); + orga.setDateNaissance(LocalDate.of(1990, 3, 17)); + orga.setEmail("adeline.combourg2@yopmail.com"); + orga.setActif(true); + orga.setNomStructure("Rock en scène"); + orga.setNumeroSiret("523 299 410 00531"); + orga.setAdresseSiege("18, chemin de Faivre, 89731 AUBERT"); + return orga; + } + private Concert createConcert() { + Concert concert = new Concert(); + concert.setArtiste("ARTISTE"); + concert.setCapacite(2500L); + concert.setDate(LocalDateTime.now()); + concert.setPopularite(3.5f); + concert.setGenre("VARIETE"); + concert.setDescription("Super concert!"); + return concert; + } + + private Ticket createTicket(String numeroPlace, Double prixUnitaire, Concert concert) { + Ticket ticket = new Ticket("A001", 42.0d, concert); + ticket.setNumeroPlace(numeroPlace); + ticket.setPrixUnitaire(prixUnitaire); + ticket.setStatut(StatutTicketEnum.ACHETE); + ticket.setDateAchat(LocalDateTime.now()); + return ticket; + } + + private List listConcert() { + return manager + .createQuery("select c from Concert c", Concert.class) + .getResultList(); + } + + private List listPersonnes() { + return manager + .createQuery("select p from Personne p", Personne.class) + .getResultList(); + } } diff --git a/src/main/java/jpa/model/Administrateur.java b/src/main/java/jpa/model/Administrateur.java new file mode 100644 index 000000000..e0d84f690 --- /dev/null +++ b/src/main/java/jpa/model/Administrateur.java @@ -0,0 +1,40 @@ +package jpa.model; + +import jakarta.persistence.Entity; + +import java.time.LocalDate; + +@Entity +public class Administrateur extends Personne { + private LocalDate dateNomination; + + private Boolean actif; + + // region Generated code + public LocalDate getDateNomination() { + return dateNomination; + } + + public void setDateNomination(LocalDate dateNomination) { + this.dateNomination = dateNomination; + } + + public Boolean getActif() { + return actif; + } + + public void setActif(Boolean actif) { + this.actif = actif; + } + + @Override + public String toString() { + return "Administrateur{" + + "dateNomination=" + dateNomination + + ", actif=" + actif + + ", personneId=" + personneId + + '}'; + } + + // endregion +} diff --git a/src/main/java/jpa/model/Concert.java b/src/main/java/jpa/model/Concert.java new file mode 100644 index 000000000..bb85bda4e --- /dev/null +++ b/src/main/java/jpa/model/Concert.java @@ -0,0 +1,119 @@ +package jpa.model; + +import jakarta.persistence.*; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Entity +public class Concert implements Serializable { + private Long concertId; + + private String artiste; + + private String lieu; + + private LocalDateTime date; + + private String genre; + + private Long capacite; + + private Float popularite; + + private String description; + + + private List tickets = new ArrayList<>(); + + @Id + @GeneratedValue + public Long getConcertId() { + return concertId; + } + + public void setConcertId(Long concertId) { + this.concertId = concertId; + } + + public String getArtiste() { + return artiste; + } + + public void setArtiste(String artiste) { + this.artiste = artiste; + } + + public String getLieu() { + return lieu; + } + + public void setLieu(String lieu) { + this.lieu = lieu; + } + + public LocalDateTime getDate() { + return date; + } + + public void setDate(LocalDateTime date) { + this.date = date; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + public Long getCapacite() { + return capacite; + } + + public void setCapacite(Long capacite) { + this.capacite = capacite; + } + + public Float getPopularite() { + return popularite; + } + + public void setPopularite(Float popularite) { + this.popularite = popularite; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @OneToMany(mappedBy = "concert", cascade = CascadeType.PERSIST) + public List getTickets() { + return tickets; + } + + public void setTickets(List tickets) { + this.tickets = tickets; + } + + @Override + public String toString() { + return "Concert{" + + "concertId=" + concertId + + ", artiste='" + artiste + '\'' + + ", lieu='" + lieu + '\'' + + ", date=" + date + + ", genre='" + genre + '\'' + + ", capacite=" + capacite + + ", popularite=" + popularite + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/jpa/model/Organisateur.java b/src/main/java/jpa/model/Organisateur.java new file mode 100644 index 000000000..15a896ded --- /dev/null +++ b/src/main/java/jpa/model/Organisateur.java @@ -0,0 +1,61 @@ +package jpa.model; + +import jakarta.persistence.Entity; + +@Entity +public class Organisateur extends Personne { + + private String nomStructure; + + private String numeroSiret; + + private String adresseSiege; + + private Boolean actif; + + // region Generated code + public String getNomStructure() { + return nomStructure; + } + + public void setNomStructure(String nomStructure) { + this.nomStructure = nomStructure; + } + + public String getNumeroSiret() { + return numeroSiret; + } + + public void setNumeroSiret(String numeroSiret) { + this.numeroSiret = numeroSiret; + } + + public String getAdresseSiege() { + return adresseSiege; + } + + public void setAdresseSiege(String adresseSiege) { + this.adresseSiege = adresseSiege; + } + + public Boolean getActif() { + return actif; + } + + public void setActif(Boolean actif) { + this.actif = actif; + } + + @Override + public String toString() { + return "Organisateur{" + + "nomStructure='" + nomStructure + '\'' + + ", numeroSiret='" + numeroSiret + '\'' + + ", adresseSiege='" + adresseSiege + '\'' + + ", actif=" + actif + + ", personneId=" + personneId + + '}'; + } + + // endregion +} diff --git a/src/main/java/jpa/model/Personne.java b/src/main/java/jpa/model/Personne.java new file mode 100644 index 000000000..dc2a35b2d --- /dev/null +++ b/src/main/java/jpa/model/Personne.java @@ -0,0 +1,79 @@ +package jpa.model; + +import jakarta.persistence.*; + +import java.time.LocalDate; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +//@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "role") +public abstract class Personne { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + protected Long personneId; + + private String nom; + + private String prenom; + + private LocalDate dateNaissance; + + private String email; + + // region Generated code + public Long getPersonneId() { + return personneId; + } + + public void setPersonneId(Long personneId) { + this.personneId = personneId; + } + + public Personne() { + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + + public String getPrenom() { + return prenom; + } + + public void setPrenom(String prenom) { + this.prenom = prenom; + } + + public LocalDate getDateNaissance() { + return dateNaissance; + } + + public void setDateNaissance(LocalDate dateNaissance) { + this.dateNaissance = dateNaissance; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + @Override + public String toString() { + return "Personne{" + + "personneId=" + personneId + + ", nom='" + nom + '\'' + + ", prenom='" + prenom + '\'' + + ", dateNaissance=" + dateNaissance + + ", email='" + email + '\'' + + '}'; + } + // endregion +} diff --git a/src/main/java/jpa/model/StatutTicketEnum.java b/src/main/java/jpa/model/StatutTicketEnum.java new file mode 100644 index 000000000..689ba0b0f --- /dev/null +++ b/src/main/java/jpa/model/StatutTicketEnum.java @@ -0,0 +1,7 @@ +package jpa.model; + +public enum StatutTicketEnum { + ACHETE, + ANNULE, + REMBOURSE +} diff --git a/src/main/java/jpa/model/Ticket.java b/src/main/java/jpa/model/Ticket.java new file mode 100644 index 000000000..dd6b825d5 --- /dev/null +++ b/src/main/java/jpa/model/Ticket.java @@ -0,0 +1,119 @@ +package jpa.model; + +import jakarta.persistence.*; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@Entity +public class Ticket implements Serializable { + private Long ticketId; + + private String numeroPlace; + + @Enumerated(EnumType.STRING) + private StatutTicketEnum statut; + + private Double prixUnitaire; + + private LocalDateTime dateAchat; + + private LocalDateTime dateAnnulation; + + private LocalDateTime dateRemboursement; + + private Concert concert; + + // region Generated code + + public Ticket() { + } + + public Ticket(String numeroPlace, Double prixUnitaire, Concert concert) { + this.numeroPlace = numeroPlace; + this.prixUnitaire = prixUnitaire; + this.concert = concert; + + } + + public LocalDateTime getDateRemboursement() { + return dateRemboursement; + } + + public void setDateRemboursement(LocalDateTime dateRemboursement) { + this.dateRemboursement = dateRemboursement; + } + + public LocalDateTime getDateAnnulation() { + return dateAnnulation; + } + + public void setDateAnnulation(LocalDateTime dateAnnulation) { + this.dateAnnulation = dateAnnulation; + } + + public LocalDateTime getDateAchat() { + return dateAchat; + } + + public void setDateAchat(LocalDateTime dateAchat) { + this.dateAchat = dateAchat; + } + + public Double getPrixUnitaire() { + return prixUnitaire; + } + + public void setPrixUnitaire(Double prixUnitaire) { + this.prixUnitaire = prixUnitaire; + } + + public StatutTicketEnum getStatut() { + return statut; + } + + public void setStatut(StatutTicketEnum statut) { + this.statut = statut; + } + + public String getNumeroPlace() { + return numeroPlace; + } + + public void setNumeroPlace(String numeroPlace) { + this.numeroPlace = numeroPlace; + } + + @Id + @GeneratedValue + public Long getTicketId() { + return ticketId; + } + + public void setTicketId(Long ticketId) { + this.ticketId = ticketId; + } + + @ManyToOne + public Concert getConcert() { + return concert; + } + + public void setConcert(Concert concert) { + this.concert = concert; + } + + @Override + public String toString() { + return "Ticket{" + + "ticketId=" + ticketId + + ", numeroPlace='" + numeroPlace + '\'' + + ", statut=" + statut + + ", prixUnitaire=" + prixUnitaire + + ", dateAchat=" + dateAchat + + ", dateAnnulation=" + dateAnnulation + + ", dateRemboursement=" + dateRemboursement + + '}'; + } + // endregion +} diff --git a/src/main/java/jpa/model/Utilisateur.java b/src/main/java/jpa/model/Utilisateur.java new file mode 100644 index 000000000..ecad08d17 --- /dev/null +++ b/src/main/java/jpa/model/Utilisateur.java @@ -0,0 +1,61 @@ +package jpa.model; + +import jakarta.persistence.Entity; + +import java.time.LocalDate; + +@Entity +public class Utilisateur extends Personne { + private LocalDate dateInscription; + + private Double creditCompte; + + private Boolean preferenceNotificationEmail; + + private Boolean preferenceNotificationPush; + + // region Generated code + public LocalDate getDateInscription() { + return dateInscription; + } + + public void setDateInscription(LocalDate dateInscription) { + this.dateInscription = dateInscription; + } + + public Double getCreditCompte() { + return creditCompte; + } + + public void setCreditCompte(Double creditCompte) { + this.creditCompte = creditCompte; + } + + public Boolean getPreferenceNotificationEmail() { + return preferenceNotificationEmail; + } + + public void setPreferenceNotificationEmail(Boolean preferenceNotificationEmail) { + this.preferenceNotificationEmail = preferenceNotificationEmail; + } + + public Boolean getPreferenceNotificationPush() { + return preferenceNotificationPush; + } + + public void setPreferenceNotificationPush(Boolean preferenceNotificationPush) { + this.preferenceNotificationPush = preferenceNotificationPush; + } + + @Override + public String toString() { + return "Utilisateur{" + + "dateInscription=" + dateInscription + + ", creditCompte=" + creditCompte + + ", preferenceNotificationEmail=" + preferenceNotificationEmail + + ", preferenceNotificationPush=" + preferenceNotificationPush + + ", personneId=" + personneId + + '}'; + } + // endregion +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 7277b7dd2..2fe78d7d2 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -15,10 +15,13 @@ + value="drop-and-create" /> + + From a7849fea56f9518951fcbb82fa4d8509f8ca1fd5 Mon Sep 17 00:00:00 2001 From: "fabien.le-houedec" Date: Wed, 11 Feb 2026 12:54:50 +0100 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20ajout=20des=20entit=C3=A9s=20Artist?= =?UTF-8?q?es=20et=20Genre=20pour=20remplacer=20le=20champ=20artiste=20dan?= =?UTF-8?q?s=20Concert=20--=20relation=20@ManyToMany?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/jpa/JpaTest.java | 5 +- src/main/java/jpa/model/Artiste.java | 132 ++++++++++++++++++++++ src/main/java/jpa/model/Concert.java | 38 ++++--- src/main/java/jpa/model/GenreMusical.java | 40 +++++++ src/main/java/jpa/model/Ticket.java | 6 +- 5 files changed, 203 insertions(+), 18 deletions(-) create mode 100644 src/main/java/jpa/model/Artiste.java create mode 100644 src/main/java/jpa/model/GenreMusical.java diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java index c94fb80b9..28c08a5ac 100644 --- a/src/main/java/jpa/JpaTest.java +++ b/src/main/java/jpa/JpaTest.java @@ -42,6 +42,8 @@ public static void main(String[] args) { System.out.println(test.listConcert()); System.out.println("---- LISTE DES PERSONNES ----"); System.out.println(test.listPersonnes()); + + // TODO Créer 3 artiste + un concert } catch (Exception e) { tx.rollback(); e.printStackTrace(); @@ -95,7 +97,6 @@ private Organisateur createOrganisateur() { private Concert createConcert() { Concert concert = new Concert(); - concert.setArtiste("ARTISTE"); concert.setCapacite(2500L); concert.setDate(LocalDateTime.now()); concert.setPopularite(3.5f); @@ -125,4 +126,6 @@ private List listPersonnes() { .getResultList(); } + + } diff --git a/src/main/java/jpa/model/Artiste.java b/src/main/java/jpa/model/Artiste.java new file mode 100644 index 000000000..85293816e --- /dev/null +++ b/src/main/java/jpa/model/Artiste.java @@ -0,0 +1,132 @@ +package jpa.model; + +import jakarta.persistence.*; + +import java.time.LocalDate; +import java.util.HashSet; +import java.util.Set; + +@Entity +public class Artiste { + @Id + @GeneratedValue + private Long artisteId; + + private String nomScene; + + private String nom; + + private String prenom; + + private LocalDate dateNaissance; + + private String nationalite; + + private String description; + + private int popularite; + + private String siteWeb; + + @ManyToMany(mappedBy = "artistes", fetch = FetchType.LAZY) + private Set concerts = new HashSet<>(); + + // region Generated code + + + public Set getConcerts() { + return concerts; + } + + public void setConcerts(Set concerts) { + this.concerts = concerts; + } + + public Long getArtisteId() { + return artisteId; + } + + public void setArtisteId(Long artisteId) { + this.artisteId = artisteId; + } + + public String getNomScene() { + return nomScene; + } + + public void setNomScene(String nomScene) { + this.nomScene = nomScene; + } + + public String getNom() { + return nom; + } + + public void setNom(String nom) { + this.nom = nom; + } + + public String getPrenom() { + return prenom; + } + + public void setPrenom(String prenom) { + this.prenom = prenom; + } + + public LocalDate getDateNaissance() { + return dateNaissance; + } + + public void setDateNaissance(LocalDate dateNaissance) { + this.dateNaissance = dateNaissance; + } + + public String getNationalite() { + return nationalite; + } + + public void setNationalite(String nationalite) { + this.nationalite = nationalite; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getPopularite() { + return popularite; + } + + public void setPopularite(int popularite) { + this.popularite = popularite; + } + + public String getSiteWeb() { + return siteWeb; + } + + public void setSiteWeb(String siteWeb) { + this.siteWeb = siteWeb; + } + + @Override + public String toString() { + return "Artiste{" + + "artisteId=" + artisteId + + ", nomScene='" + nomScene + '\'' + + ", nom='" + nom + '\'' + + ", prenom='" + prenom + '\'' + + ", dateNaissance=" + dateNaissance + + ", nationalite='" + nationalite + '\'' + + ", description='" + description + '\'' + + ", popularite=" + popularite + + ", siteWeb='" + siteWeb + '\'' + + '}'; + } + // endregion +} diff --git a/src/main/java/jpa/model/Concert.java b/src/main/java/jpa/model/Concert.java index bb85bda4e..26a5e79d3 100644 --- a/src/main/java/jpa/model/Concert.java +++ b/src/main/java/jpa/model/Concert.java @@ -5,13 +5,23 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Entity public class Concert implements Serializable { + @Id + @GeneratedValue private Long concertId; - private String artiste; + @ManyToMany(fetch = FetchType.LAZY) + @JoinTable( + name = "artiste_genre", + joinColumns = @JoinColumn(name = "concert_id"), + inverseJoinColumns = @JoinColumn(name = "artiste_id") + ) + private Set artistes = new HashSet<>(); private String lieu; @@ -25,25 +35,24 @@ public class Concert implements Serializable { private String description; - + @OneToMany(mappedBy = "concert", cascade = CascadeType.PERSIST) private List tickets = new ArrayList<>(); - @Id - @GeneratedValue - public Long getConcertId() { - return concertId; + // region Generated code + public Set getArtistes() { + return artistes; } - public void setConcertId(Long concertId) { - this.concertId = concertId; + public void setArtistes(Set artistes) { + this.artistes = artistes; } - public String getArtiste() { - return artiste; + public Long getConcertId() { + return concertId; } - public void setArtiste(String artiste) { - this.artiste = artiste; + public void setConcertId(Long concertId) { + this.concertId = concertId; } public String getLieu() { @@ -94,7 +103,6 @@ public void setDescription(String description) { this.description = description; } - @OneToMany(mappedBy = "concert", cascade = CascadeType.PERSIST) public List getTickets() { return tickets; } @@ -107,13 +115,15 @@ public void setTickets(List tickets) { public String toString() { return "Concert{" + "concertId=" + concertId + - ", artiste='" + artiste + '\'' + + ", artistes=" + artistes + ", lieu='" + lieu + '\'' + ", date=" + date + ", genre='" + genre + '\'' + ", capacite=" + capacite + ", popularite=" + popularite + ", description='" + description + '\'' + + ", tickets=" + tickets + '}'; } + // endregion } diff --git a/src/main/java/jpa/model/GenreMusical.java b/src/main/java/jpa/model/GenreMusical.java new file mode 100644 index 000000000..76ee641c9 --- /dev/null +++ b/src/main/java/jpa/model/GenreMusical.java @@ -0,0 +1,40 @@ +package jpa.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; + +@Entity +public class GenreMusical { + @GeneratedValue + @Id + private Long genreId; + + private String libelle; + + // region Generated code + public String getLibelle() { + return libelle; + } + + public void setLibelle(String libelle) { + this.libelle = libelle; + } + + public Long getGenreId() { + return genreId; + } + + public void setGenreId(Long genreId) { + this.genreId = genreId; + } + + @Override + public String toString() { + return "GenreMusical{" + + "genreId=" + genreId + + ", libelle='" + libelle + '\'' + + '}'; + } + // endregion +} diff --git a/src/main/java/jpa/model/Ticket.java b/src/main/java/jpa/model/Ticket.java index dd6b825d5..f7f597fff 100644 --- a/src/main/java/jpa/model/Ticket.java +++ b/src/main/java/jpa/model/Ticket.java @@ -7,6 +7,8 @@ @Entity public class Ticket implements Serializable { + @Id + @GeneratedValue private Long ticketId; private String numeroPlace; @@ -22,6 +24,7 @@ public class Ticket implements Serializable { private LocalDateTime dateRemboursement; + @ManyToOne private Concert concert; // region Generated code @@ -84,8 +87,6 @@ public void setNumeroPlace(String numeroPlace) { this.numeroPlace = numeroPlace; } - @Id - @GeneratedValue public Long getTicketId() { return ticketId; } @@ -94,7 +95,6 @@ public void setTicketId(Long ticketId) { this.ticketId = ticketId; } - @ManyToOne public Concert getConcert() { return concert; }