我想使用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/

10-10 06:53