Skip to content

Instantly share code, notes, and snippets.

@bastienapp
Last active June 6, 2019 15:54
Show Gist options
  • Save bastienapp/939cfe7ad9d934069ab48845aebc1dbb to your computer and use it in GitHub Desktop.
Save bastienapp/939cfe7ad9d934069ab48845aebc1dbb to your computer and use it in GitHub Desktop.

Tutoriels Rest, JPA et Hibernate

1. Quête Spring : JPA et Hibernate :

Lien : https://odyssey.wildcodeschool.fr/quests/417

2. Réaliser les tutos suivants :

Attention !

  • Dans les tutoriels suivants, il te faudra ajouter "&serverTimezone=GMT" aux urls d'accès à JDBC, ex :
spring.datasource.url = jdbc:mysql://localhost:3306/notes_app?useSSL=false&serverTimezone=GMT
  • Dans Postman, il te faudra changer le mode "Text" en "JSON (application/json)"

Utilisation de Hibernate et de JPA

Lien : https://www.callicoder.com/spring-boot-rest-api-tutorial-with-mysql-jpa-hibernate/

Pour lancer le serveur : mvn spring-boot:run (il faut le relancer à chaque modification)

L’url à tester : http://localhost:8080/api/notes

Exemple de One to Many (cardinalité simple)

Lien : https://www.callicoder.com/hibernate-spring-boot-jpa-one-to-many-mapping-example/

Il faut que la classe JpaOneToManyDemoApplication soit dans com.example.jpa et non dans com.example.jpa.jpaonetomanydemo (vous pouvez la déplacer ou faire un refactor du package).

Exemple de Many to Many (cardinalité multiple)

Lien : https://www.callicoder.com/hibernate-spring-boot-jpa-many-to-many-mapping-example/

Attention : il faut que la classe JpaManyToManyDemoApplication soit dans com.example.jpa et non dans com.example.jpa.jpamanytomanydemo (vous pouvez la déplacer ou faire un refactor du package).

Attention

Penser à générer les getters et setters dans les classes d'exemple

Tester les différentes API avec Postman.

3. Mettre en pratique :

Créer une API

Créer les modèles de données et une API permettant de faire un CRUD de l’énoncé suivant :

  • Un élève à un nom et un âge.
  • Un établissement à un nom et une adresse.
  • Un langage à un nom.

Un élève peut apprendre un ou plusieurs langages. Un élève fait parti d’un seul établissement.

Ajouter des données :

Établissement :

  • "Wild Code School", à "Toulouse"
  • "South Park Elementary School", à "South Park"
  • "Springfield Elementary School", à "Springfield"

Élèves :

  • "Bart Simpson", 12, appartient à "Springfield Elementary School" et apprend le langage "Ruby"
  • "Cartman", 11, appartient à "South Park Elementary School" et apprend le langage "PHP"
  • "John Christmas", 42, appartient à "Wild Code School" et apprend les langages "JS" et "Java"

Ŀangage :

  • "Ruby"
  • "PHP"
  • "JS"
  • "Java"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment