Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.iml
.idea/
data/
target/
2 changes: 1 addition & 1 deletion src/main/java/jpa/EntityManagerHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class EntityManagerHelper {

static {
emf = Persistence.createEntityManagerFactory("dev");
threadLocal = new ThreadLocal<EntityManager>();
threadLocal = new ThreadLocal<>();
}

public static EntityManager getEntityManager() {
Expand Down
105 changes: 97 additions & 8 deletions src/main/java/jpa/JpaTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,128 @@

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());

// TODO Créer 3 artiste + un concert
} 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.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<Concert> listConcert() {
return manager
.createQuery("select c from Concert c", Concert.class)
.getResultList();
}

private List<Personne> listPersonnes() {
return manager
.createQuery("select p from Personne p", Personne.class)
.getResultList();
}



Expand Down
40 changes: 40 additions & 0 deletions src/main/java/jpa/model/Administrateur.java
Original file line number Diff line number Diff line change
@@ -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
}
132 changes: 132 additions & 0 deletions src/main/java/jpa/model/Artiste.java
Original file line number Diff line number Diff line change
@@ -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<Concert> concerts = new HashSet<>();

// region Generated code


public Set<Concert> getConcerts() {
return concerts;
}

public void setConcerts(Set<Concert> 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
}
Loading