我对休眠操作有疑问:更新。
这里是一些代码:
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语句。