代码:
public void test() {
Session session = sessionFactory.openSession();
User u = new User();
u.setUsername("user1");
session.delete(u);
session.close();
}
我想知道为什么删除不起作用
答案 0 :(得分:1)
在session.close()
session.flush()
答案 1 :(得分:1)
您正在尝试删除未附加到会话的非托管实体。为了操纵实体,您应该首先将其附加到会话:
User u = (User) session.get(User.class, 1L);
session.delete(u);
以上是按ID加载的示例,因此如果您被限制为用户名,则必须编写更复杂的查询。