我想使用HibernateTemplate更新数据库Persons
表中的特定字段。我正在尝试这样做,但这不起作用。
public void updateDate(int Id,Date receivedDate) {
Id = 10;
receivedDate = 2012-11-12;
String queryString = "update Persons set recievedDate=? where Id=? ";
getHibernateTemplate().update(queryString, new Object[] { Id, receivedDate });
}
运行此查询时,出现异常“ UnkownEntity”。我可以使用HibernateTemplate来完全更新特定字段吗?还有其他替代方法可以进行特定字段更新吗?
最佳答案
update
中的getHibernateTemplate
方法不允许执行hql查询。它仅允许休眠实体对象。
见链接hibernate template update method
在您的情况下,Hibernate尝试将update Persons set recievedDate=? where Id=?
解析为一个实体。
解:
Query q = s.createQuery("update Persons set recievedDate=:recievedDate where Id=:Id");
q.setString("recievedDate", "some date");
q.setString("Id", "54");
q.executeUpdate();
希望它清除。
关于java - 如何通过HibernateTemplate更新数据库中的特定字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13374223/