Bonjour,
pour un qcm, j'ai une classe evaluation et une classe reponse, liées toutes les 2 en many-to-many. (je me suis très fortement inspiré de ca et du projet associé
Le code de la classe Evaluation est celui-ci
Comme vous pouvez voir, j'ai une requête sql avec @Formula pour remplir la case nbCorrectAnswers. Cependant, quand je sauve une evaluation en validant un qcm, une évaluation est créée, mes jointures se font, avec les questions répondues associées à l'évaluation, mais ma colonne nbCorrectAnswers reste vide. J'ai essayé avec des requêtes plus simples, du genre (SELECT COUNT(*) FROM Evaluation_Reponse er WHERE er.Evaluation_id = id"), mais toujours rien. J'ajoute que j'ai à peu près tout essayer au niveau écriture, format sql ou Hibernat (majuscule, _ ou .)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @Entity public class Evaluation implements Serializable { private Long id; @ManyToMany public List<Reponse> getListOfReponses() { return listOfReponses; } @Formula("(SELECT COUNT(*) FROM Evaluation_Reponse er, Reponse r, WHERE er.Evaluation_id = id AND r.id = er.listOfReponses_id AND r.correct = 1)") public Integer getNbCorrectAnswers() { return nbCorrectAnswers;
Et si je crée la requete dans une classe de persistance, j'ai la meme chose, où des erreurs du au fait que la requête ne peut pas se faire si une evaluation n'est pas créée.
Si ca peut aider, la fonction appelée pour sauvegarder une evaluation est :
qui se trouve dans la couche service, et plus précisément dans qcmService.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 @Override public void saveAnswers(Evaluation evaluation) { evaluationRepository.save(evaluation); }
Pourriez vous me dire d'où vient l'erreur, et quelle serait la bonne solution ?
Merci
Partager