无法获取更新查询以使用Hibernate

时间:2017-10-19 22:44:08

标签: java sql hibernate sql-update

我有一个简单的更新查询,只是为了检查更新查询是否有效:

 this.openDBTransaction();
 Query updateQuery = session.createQuery(
         "UPDATE User AS usr SET usr.failedLogins=666 WHERE usr.id='USER_3000'"
 );

 int result = updateQuery.executeUpdate();
 this.closeDBTransaction();

但不知何故DB没有更新所需的值。 result为1,因此发生了一些事情,但肯定不会更新查询。

有什么想法发生了什么?

1 个答案:

答案 0 :(得分:1)

您应该使用@Transactional注释,以便编译器知道事务正在操纵数据库,从而允许执行数据操作查询,或者它只是将其作为数据定义语言查询执行。 请查看下面的代码段,例如

@Transactional
public Employee editEmployee(Employee employee) { //employee is the data you got through post
    return entityManager.merge(e1);

}

此外,最佳做法是始终实现数据访问对象接口及其实现,并在实现中定义您的查询。 我希望这会有所帮助。