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
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;
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 .)

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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
	@Override
	public void saveAnswers(Evaluation evaluation) {
		evaluationRepository.save(evaluation);
	}
qui se trouve dans la couche service, et plus précisément dans qcmService.

Pourriez vous me dire d'où vient l'erreur, et quelle serait la bonne solution ?
Merci