gpt4 book ai didi

java - Spring Hibernate getCurrentSession() 删除不工作

转载 作者:行者123 更新时间:2023-11-30 11:21:05 25 4
gpt4 key购买 nike

我正在单元测试中全面测试一个实体,到目前为止几乎一切正常:创建、更新、列表。但是,当我尝试删除一条记录时,它并没有被删除。这是我正在使用的代码:

  public void delete (Integer id) {
// This doesnt work even though I know user is set and id is not null
User user = find(id);
getSession().delete(user);
// This will work
// Query query = getSession().createSQLQuery("DELETE FROM users WHERE id = " + id);
// query.executeUpdate();
}

private Session getSession() {
if (session == null) {
try {
session = SessionFactoryUtils.getSession(sessionFactory, Boolean.TRUE);
TransactionSynchronizationManager.bindResource(session.getSessionFactory(), new SessionHolder(session));
} catch (Exception e) {
session = SessionFactoryUtils.getSession(sessionFactory, Boolean.FALSE);
}
}
return session;
}

如果我直接执行查询,它会起作用,但使用 delete() 方法则不起作用。我认为这可能与提交交易有关,但我已经尝试过类似的方法但没有运气。有什么想法吗?

最佳答案

我发现了这个问题。

首先,find() 方法正在逐出我的用户模型,并可能将其从 session 中移除。

在delete()之后,我还需要session.flush()

关于java - Spring Hibernate getCurrentSession() 删除不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com