作为测试的一部分,我一直在尝试创建一个用户,然后将其删除,但我不断收到相同的错误组织。冬眠hql。内部的QueryExecutionRequestException:即使在我的存储库和控制器中不断更改代码之后,DML操作也不受支持。
这是我的存储库中的代码:
@Transactional
@Override
public void deleteById(long id) {
Query query = entityManager.createQuery(
"delete from UserModel as u where u.id=:id"
).setParameter("id", id);
query.getSingleResult();
query.executeUpdate();
}
这是我的控制器中的代码:
@DeleteMapping("/deleteUser")
public @ResponseBody
void deleteUser(@RequestParam long id) {
userRepository.deleteById(id);
ResponseEntity.ok(null);
}
我认为异常是由于查询而触发的。getSingleResult() 试图从删除查询(这是查询的更新类型)中获取结果的行。
尝试这样更改代码:
@Override
public void deleteById(long id) {
Query query = entityManager.createQuery(
"delete from UserModel as u where u.id=:id"
).setParameter("id", id);
query.executeUpdate();
}
问题内容: 我写了一个查询来删除我的扩展接口中的某些对象,但是当我执行查询时,它会抛出异常!谁能为我解释一下? 查询: 我收到了此错误,请问,请为我解释一下,谢谢大家:) 例外: 问题答案: 尝试这个: 每当您尝试修改db中的记录时,都必须将其标记为@Transactional和@Modifying,这将指示Spring可以修改现有记录。 存储库方法必须为空,否则将不断抛出异常。
我已经编写了一个查询来删除扩展接口中的一些对象,但是当我执行查询时,它会抛出一个异常!谁能给我解释一下吗? 查询: 我犯了这个错误,请任何人帮我解释一下,谢谢大家:) 例外情况:
我正在尝试更新数据库中的记录,但收到此错误 这是我的hql尝试 经过研究,我在方法的顶部添加了@修改注释,但错误仍然存在。请问怎么了?
当我使用以下HQL时,我得到了DML操作不支持的错误
这以前被问过一次,但解决方案并没有解决问题。我正在创建一个JUnit测试: 上述测试调用的查询是: 错误:
我在springdatajpa中执行更新查询时遇到问题。这是存储库层中的代码: 如您所见,我已经添加了@修改注释,但它仍然抛出“不支持DML操作”的错误,我正在使用Hibernate 5.4。非常感谢任何帮助。