【发布时间】:2018-12-17 02:25:20
【问题描述】:
我正在开发一个使用 Spring MVC 构建的应用程序,它使用 Hibernate 与数据存储进行交互。当我尝试实现删除功能时,我发现有多种方法可以实现 session.delete()。总之,我很困惑以下两种方法中哪一种是实现 Hibernate seesion.delete() 的更好方法(更具体地说,标准方法)。
由于这个API调用在未来阶段会变成微服务,我想这是从网络获取userId而不是整个对象的标准方式。
方法一:
@Transactional
public void deleteUser(User user) {
sessionFactory.getCurrentSession().delete(user);
}
方法二:
@Transactional
public void deleteUser(int userId) {
Query q = session.createQuery("delete User where id = :userId");
query.setParameter("userId", userId);
q.executeUpdate();
}
方法三:
@Transactional
public void deleteOrg(int userId) {
User user = sessionFactory.getCurrentSession().get(User.class, userId);
sessionFactory.getCurrentSession().delete(user);
}
【问题讨论】:
-
我越来越糊涂了。您的回答与@Guillaume 的回答相冲突。
标签: spring hibernate spring-mvc spring-boot hibernate-session