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
|
||||
@DynamicInsert
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
public class Editeur {
|
||||
|
||||
@Id
|
||||
|
|
@ -31,6 +32,7 @@ public class Editeur {
|
|||
private String logo;
|
||||
|
||||
@JsonManagedReference
|
||||
@ToString.Exclude
|
||||
@OneToMany(mappedBy = "editeur", cascade = CascadeType.REMOVE) // OneEditeurToManyJeux
|
||||
private List<Jeu> jeux;
|
||||
|
||||
|
|
|
|||
|
|
@ -14,4 +14,11 @@ import java.time.LocalDate;
|
|||
public class Joueur extends Utilisateur {
|
||||
|
||||
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 {
|
||||
|
||||
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
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
public class Plateforme {
|
||||
|
||||
@Id
|
||||
|
|
@ -27,5 +28,6 @@ public class Plateforme {
|
|||
|
||||
@ManyToMany(mappedBy="plateformes")
|
||||
@JsonIgnore
|
||||
@ToString.Exclude
|
||||
private List<Jeu> jeux;
|
||||
}
|
||||
|
|
@ -1,15 +1,23 @@
|
|||
package fr.clelia.avis.initialisation;
|
||||
|
||||
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.repository.EditeurRepository;
|
||||
import fr.clelia.avis.repository.PlateformeRepository;
|
||||
import fr.clelia.avis.repository.JeuRepository;
|
||||
import fr.clelia.avis.repository.JoueurRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Component // Spring va instancier cette classe
|
||||
// et placer cette instance dans son conteneur IoC
|
||||
//@AllArgsConstructor
|
||||
|
|
@ -20,12 +28,26 @@ public class AjoutDonneesInitiales {
|
|||
private EditeurRepository editeurRepository;
|
||||
@Autowired
|
||||
private PlateformeRepository plateformeRepository;
|
||||
@Autowired
|
||||
private JeuRepository jeuRepository;
|
||||
@Autowired
|
||||
private JoueurRepository joueurRepository;
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
public void init() {
|
||||
System.out.println("Ajout des données initiales");
|
||||
ajouterEditeurs();
|
||||
ajouterPlateformes();
|
||||
ajouterJeux();
|
||||
ajouteurJoueurs();
|
||||
afficherStatistiques();
|
||||
}
|
||||
|
||||
private void afficherStatistiques() {
|
||||
editeurRepository.findByLogoStartsWith("micro")
|
||||
.forEach(System.out::println);
|
||||
plateformeRepository.findByNomStartsWith("Nintendo")
|
||||
.forEach(System.out::println);
|
||||
}
|
||||
|
||||
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 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 EditeurRepository extends JpaRepository<Editeur, Long> {
|
||||
// Méthode dérivée
|
||||
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;
|
||||
|
||||
import fr.clelia.avis.business.Editeur;
|
||||
import fr.clelia.avis.business.Plateforme;
|
||||
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> {
|
||||
// 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