/**
* 通过id来查找用户(删除用)
*/
public Person findOneById(Long pid) {
Transaction transaction = sessionFactory.getCurrentSession().beginTransaction();
Person person = (Person)sessionFactory.getCurrentSession().get(Person.class, pid);
transaction.commit();
return person;
}
/**
* 通过id 来删除该用户
*/
public void deleteOneById(Long pid) {
Transaction transaction = sessionFactory.getCurrentSession().beginTransaction();
Person person = findOneById(pid);
sessionFactory.getCurrentSession().delete(person);
transaction.commit();
sessionFactory.getCurrentSession().close();
}
错误的原因
在findOneById(Long pid)中间提交一次事务,然后在deleteOneById(Long pid)提交一个事务。
把findOneById中的事务提交删除掉就OK!