我对休眠操作有疑问:更新。

这里是一些代码:

Campaign campaign = campaignDAO.get(id);
campaign.setStatus(true);
campaignDAO.update(campaign);

如果我只拥有 Activity 对象的所有数据,是否有任何方法可以执行更新而无需执行第一选择(campaignDAO.get(id))?

谢谢,

亚历西奥

最佳答案

HQL一定会为您提供帮助。

为了保持关注点的分离,可以在DAO对象中添加一个更专业的方法:

public void updateStatusForId(long id, boolean status){
//provided you obtain a reference to your session object
session.createQuery("UPDATE Campaign SET status = " + status + " WHERE id = :id").setParameter("id", id).executeUpdate();
//flush your session
}

然后,您可以简单地从业务方法中调用此方法。您可以通过将show_sql的hibernate属性设置为true来检查应用程序日志中生成的SQL语句。

10-07 13:06
查看更多