REST@DeleteMapping-不允许在共享EntityManager上创建事务



当我在地址的邮递员中使用DELETE时http://localhost:8081/api/data/removedata/1

我收到一条消息回复说:";不允许在共享EntityManager上创建事务-使用Spring事务或EJB CMT";,

这是java代码

@DeleteMapping("/removedata/{id}")
public ResponseEntity deleteData(@PathVariable String id) {
long remInt = Long.parseLong(id);
Data dataRem = em.find(Data.class, remInt);
em.getTransaction().begin();
em.remove(dataRem);
em.getTransaction().commit();
return ResponseEntity.ok(new MessageResponse("Data removed"));
}

我做错了什么?ps我还是个新手,还在为基础知识而挣扎。

通过添加@Transactional like so来解决此问题:

@Transactional
@DeleteMapping("/removedata/{id}")
public ResponseEntity deleteData(@PathVariable String id) {
long remInt = Long.parseLong(id);
Data dataRem = em.find(Data.class, remInt);
em.getTransaction().begin();
em.remove(dataRem);
em.getTransaction().commit();
return ResponseEntity.ok(new MessageResponse("Data removed"));
}

最新更新