【发布时间】:2015-11-09 03:21:37
【问题描述】:
我正在使用 Spring MVC 制作游戏。我有一个获取游戏和更新的方法,但是当它进行更新时会出错,这是代码:
HomeController.class
@Transactional
@RequestMapping(value = "/partida/{idPartida}", method = RequestMethod.GET)
public String getPartida(@PathVariable("idPartida") long idPartida,
Model model) throws IOException {
Partida p = ServicioAplicacionPartida.getPartida(entityManager,
idPartida);
if (p.getJson() == null) {
p.inicializarPartida(entityManager);
ServicioAplicacionPartida.update(entityManager, p);
}
GameDAO.class
@Transactional
public static Partida update(EntityManager entityManager, Partida p) {
try {
Query q = entityManager.createNativeQuery("update Partida p SET p.json=:json where p.id=:id");
q.setParameter("json", p.getJson());
q.setParameter("id", p.getId());
q.executeUpdate();
return entityManager.find(Partida.class, p.getId());
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
执行“q.executeUdate()”行时出错,这里是:
javax.persistence.PersistenceException: org.hibernate.exception.DataException: 无法执行语句
这是服务器错误:
Estado HTTP 500 - 请求处理失败;嵌套异常是 org.springframework.transaction.TransactionSystemException:无法提交 JPA 事务;嵌套异常是 javax.persistence.RollbackException: 事务标记为 rollbackOnly
我能做些什么来解决它?
【问题讨论】:
-
查看 Drew Corvin 的回答 stackoverflow.com/questions/25821579/…
标签: java spring-mvc jpa