Bonjour,

Comme j'ai une relation many-to-one entre une Evaluation et un User, et que l'Evaluation est créé après validation d'un test, j'aimerais pouvoir rentrer dans la colonne user_id de Evaluation l'id ou le user connecté en session, sachant qu'il faut forcément être connecté pour passer le test.

Voici mon controler qui gère l'Evaluation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
@RequestMapping(value="showQcm/{sequenceId}", method = RequestMethod.POST)
    public String processQcm(@PathVariable ("sequenceId") Long sequenceId, 
    				@ModelAttribute ("evaluation") Evaluation evaluation, 
    				Model model) {
		Qcm qcm = qcmService.findBySequenceId(sequenceId);
		evaluation.setQcm(qcm);
		evaluation.setDate(new Date());
		evaluationService.save(evaluation);
		evaluationService.saveCorrectAnswers(qcm, evaluation);
		model.addAttribute("eval", evaluation);
		model.addAttribute("qcmSuccess", qcm);
		return "qcmSuccess";
     }
D'après ce que j'ai lu sur le web, j'ai essayé plusieurs trucs, notamment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RequestMapping(value="showQcm/{sequenceId}", method = RequestMethod.POST)
    public String processQcm(@PathVariable ("sequenceId") Long sequenceId, 
    				@ModelAttribute ("evaluation") Evaluation evaluation, 
    				@ModelAttribute ("connectedUser") User user, 
    				Model model) {
		Qcm qcm = qcmService.findBySequenceId(sequenceId);
		evaluation.setQcm(qcm);
		evaluation.setUser(user);
		evaluation.setDate(new Date());
		evaluationService.save(evaluation);
		evaluationService.saveCorrectAnswers(qcm, evaluation);
		model.addAttribute("eval", evaluation);
		model.addAttribute("qcmSuccess", qcm);
		return "qcmSuccess";
     }
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
@Controller
@SessionAttributes("connectedUser")
ou bien en rajoutant dans processQcm HttpSession session, et session.setAttribute("connectedUser", user),
mais rien ne marche.
Auriez vous des suggestions ?