Ajout donnée bdd
This commit is contained in:
parent
9fe8cf4981
commit
1b10a49685
7 changed files with 147 additions and 0 deletions
|
|
@ -17,6 +17,7 @@ import java.util.List;
|
||||||
@DynamicUpdate
|
@DynamicUpdate
|
||||||
@DynamicInsert
|
@DynamicInsert
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
|
@ToString
|
||||||
public class Editeur {
|
public class Editeur {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
|
@ -31,6 +32,7 @@ public class Editeur {
|
||||||
private String logo;
|
private String logo;
|
||||||
|
|
||||||
@JsonManagedReference
|
@JsonManagedReference
|
||||||
|
@ToString.Exclude
|
||||||
@OneToMany(mappedBy = "editeur", cascade = CascadeType.REMOVE) // OneEditeurToManyJeux
|
@OneToMany(mappedBy = "editeur", cascade = CascadeType.REMOVE) // OneEditeurToManyJeux
|
||||||
private List<Jeu> jeux;
|
private List<Jeu> jeux;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,11 @@ import java.time.LocalDate;
|
||||||
public class Joueur extends Utilisateur {
|
public class Joueur extends Utilisateur {
|
||||||
|
|
||||||
private LocalDate dateDeNaissance;
|
private LocalDate dateDeNaissance;
|
||||||
|
|
||||||
|
public Joueur(String pseudo, String email, String motDePasse, LocalDate dateDeNaissance) {
|
||||||
|
this.setPseudo(pseudo);
|
||||||
|
this.setEmail(email);
|
||||||
|
this.setMotDePasse(motDePasse);
|
||||||
|
this.dateDeNaissance = dateDeNaissance;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,11 @@ import org.springframework.boot.convert.DataSizeUnit;
|
||||||
public class Moderateur extends Utilisateur {
|
public class Moderateur extends Utilisateur {
|
||||||
|
|
||||||
private String numeroDeTelephone;
|
private String numeroDeTelephone;
|
||||||
|
|
||||||
|
public Moderateur(String pseudo, String email, String motDePasse, String numeroDeTelephone) {
|
||||||
|
this.setPseudo(pseudo);
|
||||||
|
this.setEmail(email);
|
||||||
|
this.setMotDePasse(motDePasse);
|
||||||
|
this.setNumeroDeTelephone(numeroDeTelephone);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import java.util.List;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class Plateforme {
|
public class Plateforme {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
|
@ -27,5 +28,6 @@ public class Plateforme {
|
||||||
|
|
||||||
@ManyToMany(mappedBy="plateformes")
|
@ManyToMany(mappedBy="plateformes")
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
@ToString.Exclude
|
||||||
private List<Jeu> jeux;
|
private List<Jeu> jeux;
|
||||||
}
|
}
|
||||||
|
|
@ -1,15 +1,23 @@
|
||||||
package fr.clelia.avis.initialisation;
|
package fr.clelia.avis.initialisation;
|
||||||
|
|
||||||
import fr.clelia.avis.business.Editeur;
|
import fr.clelia.avis.business.Editeur;
|
||||||
|
import fr.clelia.avis.business.Jeu;
|
||||||
|
import fr.clelia.avis.business.Joueur;
|
||||||
import fr.clelia.avis.business.Plateforme;
|
import fr.clelia.avis.business.Plateforme;
|
||||||
import fr.clelia.avis.repository.EditeurRepository;
|
import fr.clelia.avis.repository.EditeurRepository;
|
||||||
import fr.clelia.avis.repository.PlateformeRepository;
|
import fr.clelia.avis.repository.PlateformeRepository;
|
||||||
|
import fr.clelia.avis.repository.JeuRepository;
|
||||||
|
import fr.clelia.avis.repository.JoueurRepository;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
@Component // Spring va instancier cette classe
|
@Component // Spring va instancier cette classe
|
||||||
// et placer cette instance dans son conteneur IoC
|
// et placer cette instance dans son conteneur IoC
|
||||||
//@AllArgsConstructor
|
//@AllArgsConstructor
|
||||||
|
|
@ -20,12 +28,26 @@ public class AjoutDonneesInitiales {
|
||||||
private EditeurRepository editeurRepository;
|
private EditeurRepository editeurRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PlateformeRepository plateformeRepository;
|
private PlateformeRepository plateformeRepository;
|
||||||
|
@Autowired
|
||||||
|
private JeuRepository jeuRepository;
|
||||||
|
@Autowired
|
||||||
|
private JoueurRepository joueurRepository;
|
||||||
|
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
public void init() {
|
public void init() {
|
||||||
System.out.println("Ajout des données initiales");
|
System.out.println("Ajout des données initiales");
|
||||||
ajouterEditeurs();
|
ajouterEditeurs();
|
||||||
ajouterPlateformes();
|
ajouterPlateformes();
|
||||||
|
ajouterJeux();
|
||||||
|
ajouteurJoueurs();
|
||||||
|
afficherStatistiques();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void afficherStatistiques() {
|
||||||
|
editeurRepository.findByLogoStartsWith("micro")
|
||||||
|
.forEach(System.out::println);
|
||||||
|
plateformeRepository.findByNomStartsWith("Nintendo")
|
||||||
|
.forEach(System.out::println);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ajouterEditeurs() {
|
private void ajouterEditeurs() {
|
||||||
|
|
@ -107,4 +129,84 @@ public class AjoutDonneesInitiales {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ajouterJeux() {
|
||||||
|
if (jeuRepository.count() == 0) {
|
||||||
|
|
||||||
|
Editeur editeur = editeurRepository.findByNom("Ubisoft");
|
||||||
|
|
||||||
|
List<Plateforme> plateformes = plateformeRepository.findAll();
|
||||||
|
|
||||||
|
Jeu jeuAvecBuilder = Jeu.builder()
|
||||||
|
.nom("Test")
|
||||||
|
.editeur(editeur)
|
||||||
|
.plateformes(List.of(plateformes.get(0)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
jeuRepository.save(new Jeu("Rocket League", editeurRepository.findByNom("Psyonix"), List.of(plateformeRepository.findByNom("Windows"))));
|
||||||
|
|
||||||
|
Jeu jeu = new Jeu("Ghost Recon: Wildlands", editeur, plateformes);
|
||||||
|
jeuRepository.save(jeu);
|
||||||
|
|
||||||
|
jeuRepository.save(
|
||||||
|
new Jeu(
|
||||||
|
"Assassin's creed black flag",
|
||||||
|
editeurRepository.findByNom("Ubisoft"),
|
||||||
|
List.of(
|
||||||
|
plateformeRepository.findByNom("Windows"),
|
||||||
|
plateformeRepository.findByNom("PlayStation 4"),
|
||||||
|
plateformeRepository.findByNom("Xbox One"),
|
||||||
|
plateformeRepository.findByNom("Nintendo Switch")
|
||||||
|
)));
|
||||||
|
|
||||||
|
Editeur mobius = editeurRepository.findByNom("Mobius Digital");
|
||||||
|
List<Plateforme> plateformes2 = List.of(
|
||||||
|
plateformeRepository.findByNom("PC-Engine"),
|
||||||
|
plateformeRepository.findByNom("Xbox One"),
|
||||||
|
plateformeRepository.findByNom("PlayStation 4"),
|
||||||
|
plateformeRepository.findByNom("Nintendo Switch")
|
||||||
|
);
|
||||||
|
|
||||||
|
jeuRepository.save(new Jeu("Outer Wilds", mobius, plateformes2));
|
||||||
|
|
||||||
|
List<Plateforme> plateformes3 = plateformeRepository.findAll();
|
||||||
|
List<Editeur> editeurs = editeurRepository.findAll();
|
||||||
|
jeuRepository.save(new Jeu("Overwatch", editeurs.get(9), plateformes3.subList(4, 6)));
|
||||||
|
jeuRepository.save(new Jeu("Super Mario Odyssey", editeurs.get(1), plateformes3.subList(3, 4)));
|
||||||
|
jeuRepository.save(new Jeu("The Witcher 3: Wild Hunt", editeurs.get(2), plateformes3.subList(4, 6)));
|
||||||
|
jeuRepository.save(new Jeu("Red Dead Redemption 2", editeurs.get(3), plateformes3.subList(4, 7)));
|
||||||
|
jeuRepository.save(new Jeu("Minecraft", editeurs.get(4), plateformes3.subList(4, 8)));
|
||||||
|
jeuRepository.save(new Jeu("Cyberpunk 2077", editeurs.get(5), plateformes3.subList(4, 6)));
|
||||||
|
jeuRepository.save(new Jeu("God of War", editeurs.get(6), plateformes3.subList(9, 10)));
|
||||||
|
jeuRepository.save(new Jeu("Hollow Knight", editeurs.get(7), plateformes3.subList(3, 5)));
|
||||||
|
jeuRepository.save(new Jeu("Stardew Valley", editeurs.get(8), plateformes3.subList(4, 7)));
|
||||||
|
|
||||||
|
jeuRepository.save(new Jeu("ZELDA : TOTK", editeurRepository.findByNom("Nintendo"), List.of(plateformeRepository.findByNom("Nintendo Switch"))));
|
||||||
|
jeuRepository.save(new Jeu("The Legend of Zelda: Breath of the Wild", editeurRepository.findByNom("Nintendo"), List.of(plateformeRepository.findByNom("Nintendo Switch"))
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ajouteurJoueurs() {
|
||||||
|
Random random = new Random();
|
||||||
|
List<String> pseudos = List.of(
|
||||||
|
"Justine",
|
||||||
|
"Cedric",
|
||||||
|
"Guillaume",
|
||||||
|
"Maxence",
|
||||||
|
"Vincent L",
|
||||||
|
"Maxime",
|
||||||
|
"Anastasia",
|
||||||
|
"Ndiogou",
|
||||||
|
"Marion",
|
||||||
|
"Nejmeddine",
|
||||||
|
"Cesar",
|
||||||
|
"Moulaye",
|
||||||
|
"Julien",
|
||||||
|
"Amaury",
|
||||||
|
"Vincent S"
|
||||||
|
);
|
||||||
|
pseudos.forEach(p -> joueurRepository.save(new Joueur(p, p.replaceAll(" ", "") + "@soprasteria.com", "12345", LocalDate.of(random.nextInt(30)+1980, 1, 1))));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,21 @@ package fr.clelia.avis.repository;
|
||||||
|
|
||||||
import fr.clelia.avis.business.Editeur;
|
import fr.clelia.avis.business.Editeur;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface EditeurRepository extends JpaRepository<Editeur, Long> {
|
public interface EditeurRepository extends JpaRepository<Editeur, Long> {
|
||||||
// Méthode dérivée
|
// Méthode dérivée
|
||||||
List<Editeur> findByNomContainingIgnoreCase(String nomRecherche);
|
List<Editeur> findByNomContainingIgnoreCase(String nomRecherche);
|
||||||
|
|
||||||
|
@Query("""
|
||||||
|
SELECT e
|
||||||
|
FROM Editeur e
|
||||||
|
WHERE e.logo LIKE concat(:logo, '%')
|
||||||
|
""")
|
||||||
|
List<Editeur> findByLogoStartsWith(@Param("logo") String logo);
|
||||||
|
|
||||||
|
Editeur findByNom(String nom);
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,23 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
|
import fr.clelia.avis.business.Editeur;
|
||||||
import fr.clelia.avis.business.Plateforme;
|
import fr.clelia.avis.business.Plateforme;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface PlateformeRepository extends JpaRepository<Plateforme, Long> {
|
public interface PlateformeRepository extends JpaRepository<Plateforme, Long> {
|
||||||
|
// Méthode dérivée
|
||||||
|
List<Plateforme> findByNomContainingIgnoreCase(String nomRecherche);
|
||||||
|
|
||||||
|
@Query("""
|
||||||
|
SELECT p
|
||||||
|
FROM Plateforme p
|
||||||
|
WHERE p.nom LIKE concat(:nom, '%')
|
||||||
|
""")
|
||||||
|
List<Plateforme> findByNomStartsWith(@Param("nom") String nom);
|
||||||
|
|
||||||
|
Plateforme findByNom(String nom);
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue