Projet détaillé / 01 · Java / Data

Cinema JPA.

Application Java permettant de modéliser, importer, persister et interroger des données cinématographiques structurées autour de plusieurs entités et relations JPA.

Java 21 JPA / Hibernate MariaDB JPQL Maven JUnit
Voir le dépôt GitHub ↗
01 / Contexte & objectif

Transformer plusieurs sources CSV en un modèle métier exploitable.

Le projet s'appuie sur plusieurs jeux de données liés au cinéma : films, acteurs, réalisateurs, pays, langues, genres, rôles et lieux. Le travail consiste à reconstruire les relations entre ces données, puis à les persister dans une base relationnelle.

Java 21langage principal
JPAmapping objet-relationnel
11tests automatisés
02 / Modélisation du domaine

Structurer les entités, l'héritage et les relations.

Le modèle comprend notamment Film, Personne, Acteur, Réalisateur, Rôle, Genre, Langue, Pays, LieuNaissance et LieuTournage. Personne factorise les informations communes aux acteurs et réalisateurs, tandis que Rôle porte la relation entre un film, un acteur et un personnage.

MAPPING JPA — VUE SIMPLIFIÉE RELATIONS PRINCIPALES
Personne abstraite · héritage JOINED
Acteur hérite de Personne
Réalisateur hérite de Personne
Personne → LieuNaissance@ManyToOne
Film entité centrale
Film ↔ Genre@ManyToMany
Film ↔ Réalisateur@ManyToMany
Film ↔ Acteur · casting principal@ManyToMany
Film → Langue@ManyToOne
Film → Pays@ManyToOne
Film ↔ LieuTournage@OneToOne
Rôle Film · Acteur · personnage
Film → Rôle@OneToMany
Acteur → Rôle@OneToMany

Vue volontairement simplifiée : elle synthétise les relations JPA principales du projet.

Voir le diagramme UML complet ↗
03 / Import, persistance & requêtes

Faire circuler les données du CSV jusqu'à MariaDB.

01 CSV sources multiples
02 Parsing lecture & transformation
03 Entités relations reconstruites
04 JPA / Hibernate persistance
05 MariaDB base relationnelle
  • Organisation des accès via couches DAO et service.
  • Requêtes JPQL utilisées par six recherches console.
  • CRUD console dédié aux genres.
  • 11 tests JUnit centrés notamment sur le maintien des relations entre entités.
04 / Résultats & acquis

Relier conception UML, modèle objet et base relationnelle.

Ce projet m'a permis de travailler la cohérence entre le modèle métier, les cardinalités, les mappings JPA, la persistance et les requêtes. C'est aujourd'hui l'un de mes projets les plus représentatifs côté conception et données.

ConceptionUML & cardinalités
PersistanceJPA / Hibernate
Qualité11 tests JUnit
Retour aux projets