使用单个数据库查询在hibernate中更新

时间:2016-06-26 23:12:53

标签: java mysql hibernate

假设我有一个雇员类,其中包含3个字段 - empId,empName和empAddress。

我想只用empId更新员工的地址说1.如果我使用session.update(emp),它会将empName设置为null,当然我不希望这样。

有没有办法在不使用hql的情况下在单个数据库查询中实现此目的。

我想复制sql查询:“update employee set empAddress ='addr1',其中empId = 1”

1 个答案:

答案 0 :(得分:0)

参考hibernate DML-style operations

hibernate Query接口现在包含一个名为executeUpdate()的方法,用于执行HQL UPDATE:

String hql = "UPDATE Employee set empAddress = :empAddress "  + 
             "WHERE empId = :empId";
Query query = session.createQuery(hql);
query.setParameter("empAddress", 1000);
query.setParameter("empId", 10);
int result = query.executeUpdate();
System.out.println("Rows affected: " + result);