JPA问题:批量更新从update [0]返回意外行数;实际行数:0;预期:1

时间:2010-07-07 18:39:02

标签: java mysql hibernate spring jpa

我正在使用带有SPRING和mySQL的JPA,并且在删除实体时遇到了问题...

我这样做:

@PersistenceContext
private EntityManager em;

...     @Transactional

public void delete(Long id) {

em.flush();
OwnerEntity e = em.getReference(Entity.class, Long.valueOf(id));

if (e == null)
throw new Exception(Status.SERVER_ERROR);
em.remove(e);
em.flush();

}

1 个答案:

答案 0 :(得分:3)

嗯,错误是自我解释:你应该在一个事务中运行你的JPA代码,看起来你不是,因此TransactionRequiredException。来自它的javadoc:

  

当需要事务但未处于活动状态时,由持久性提供程序抛出。

有许多方法可以处理Spring的事务,其中一种方法是使用@Transactional注释您的服务(假设您的Spring配置中有<tx:annotation-driven/>)。

由于您没有告诉我们您使用Spring的方式,我建议您查看Chapter 9. Transaction management以获取更多详细信息。