Bonjour à tous,
Voilà je cherche à faire un update MySql lors du lancement d'un servlet. J'ai auparavant réussi à faire un update mais lorsque je fais un update simple sur un seul champs ça ne marche pas...
Ce code ne marche pas (servlet permettant de rajouter +1 au nombre de clique sur la vidéo dans la base de données):
Ce code marche (correspond à un autre servlet, servlet permettant d'éditer une vidéo):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int id = Integer.parseInt(req.getParameter("id")); Query q = em.createQuery("UPDATE Video v SET v.click = v.click+1 WHERE v.id = "+id); q.executeUpdate();
La page me renvoie un message d'erreur au niveau de "q.executeUpdate()"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 String title = req.getParameter("title"); String url = req.getParameter("url"); String description = req.getParameter("description"); int id = Integer.parseInt(req.getParameter("id")); Category c = em.find(Category.class, Integer.parseInt(req.getParameter("category"))); Query q = em.createQuery("UPDATE FROM Video v SET v.click = v.click+1, v.title = '"+title+"', v.url = '"+url+"', v.description = '"+description+"', v.category = "+c.getId()+" WHERE v.id = "+id); q.executeUpdate();
Etat HTTP 500 -
type Rapport d''exception
message
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception
javax.persistence.TransactionRequiredException: Executing an update/delete query
org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:96)
fr.zeubeuz.servlet.showVideo.doGet(showVideo.java:33)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.23.
Apache Tomcat/7.0.23
Partager