我正在尝试使用Hibernate更新表中的单个值(不更新任何其他值)。
这是我的代码:
@Override
public void updateUser(User userDetails){
Query query = session.createQuery("UPDATE User u set u.balance = :balanceValue where u.userId = :userIdValue AND c.userType = :userTypeValue");
query.setParameter("balanceValue", userDetails.getBalance());
query.setParameter("userIdValue", userDetails.getUserId());
query.setParameter("userTypeValue", userDetails.getUserType());
query.executeUpdate();
}
请注意,我插入的所有参数都是String。列u.userType和u.userId是复合键。
引起:java.sql.SQLException。关键字附近的语法不正确 " IN"
我花了好几个小时来理解这个查询的错误。我正在使用"用户"实体用于保存,更新标准(写入所有字段)和删除行没有任何问题。提前感谢您的帮助。