假设我有一个雇员类,其中包含3个字段 - empId,empName和empAddress。
我想只用empId更新员工的地址说1.如果我使用session.update(emp),它会将empName设置为null,当然我不希望这样。
有没有办法在不使用hql的情况下在单个数据库查询中实现此目的。
我想复制sql查询:“update employee set empAddress ='addr1',其中empId = 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);