Impossible de faire un update MySql
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):
Code:
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(); |
Ce code marche (correspond à un autre servlet, servlet permettant d'éditer une vidéo):
Code:
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(); |
La page me renvoie un message d'erreur au niveau de "q.executeUpdate()"...
Citation:
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