当前位置: 首页 > 知识库问答 >
问题:

使用JPA和Java更新查询

冷英光
2023-03-14

我正在尝试更新我的jpa存储

@Transactional
public interface UserRepository extends JpaRepository<User, Integer> {
User findByUsername(String username);
User findById(Long id);
@Query(value = "update user t set t.rule_id = NULL  where t.rule_id = :id", nativeQuery = true)
List<User> setNUll(@Param("id") String id);}

这是我控制器的一部分:

@RequestMapping(value = "/admin/rule/{id}/edit", method = RequestMethod.GET)
public String editRule(@PathVariable Integer id, Model model)
{
    userService.setNUll(Integer.toString(id));
    model.addAttribute("rule", ruleCrudService.getRuleById(id));
    updateUserData();
    return "ruleForm";
}

服务器还说:

SQL错误:0,SqlState:S1009 2017-06-18 12:51:15.778错误10388---[nio-8080-exec-4]O.H.Engine.jdbc.spi.SQLExCeptionHelper:无法使用executeQuery()发出数据操作语句。2017-06-18 12:51:15.844错误10388--[nio-8080-exec-4]O.A.C.C.C.[.[.[/].[dispatcherServlet]:路径为[]的上下文中servlet[dispatcherServlet]的servlet.Service()引发异常[请求处理失败;嵌套异常为org.SpringFramework.orm.jpa.JPASystemException:无法提取结果集;嵌套异常为org.Hibernate.exception.GenericJDBCException:无法提取结果集],其根本原因为

java.sql.SQLException:不能使用executeQuery()发出数据操作语句。

共有1个答案

伏默
2023-03-14

您需要使用@query上面的@modify注释来退出使用JPA的更新查询。

 类似资料:
  • 问题内容: 我试图用PDO编写更新查询,但我无法执行代码? 问题答案: 您的语法错误 您可能打算更新一行而不是全部更新,因此您必须使用子句来定位特定行 更改 至

  • 问题内容: 我想更新表的所有字段的值为“ PCNAME”。我要更新的表名是XYZ。我只想更新一些字段而不保留一些不变。 这会影响很多行而不是一行,因为会有很多行带有NAME =’PCNAME’。我如何使用JPA做到这一点。我有与此表关联的实体类。 问题答案: 您既可以采用面向对象的方式,也可以使用更新查询。 面向对象: 使用更新查询(未试用): 显然,第二个版本的性能更好。

  • 我正在尝试让这个查询在JPA中工作: 它与postgresql一起完美地工作,但是当我将它与JPA集成时,我得到了以下错误: 像这样打电话

  • 我正在制作一个rest api,其中我必须根据id进行更新,并通过spring data在表中插入没有id基础的数据。但我发现在这两种情况下都有一个错误,它运行插入查询,只有更新不工作 存储库文件@repository公共接口CustomerRepository扩展JpaRepository{CustomerEntity save(CustomerEntity CustomerEntity);Cu

  • 问题内容: 我目前正在使用Elasticsearch V2.3.1。我想在Java中使用以下Elasticsearch查询。 上面的查询搜索名为“ kimchy”的“用户”,并使用给定值更新“列表”字段。该查询同时更新多个文档。我在https://www.elastic.co/guide/en/elasticsearch/client/java- api/2.3/java-docs- update

  • 问题内容: 我当前正在使用Elasticsearch V2.3.1。我想在Java中使用以下Elasticsearch查询。 上面的查询搜索名为“ kimchy”的“用户”,并使用给定值更新“列表”字段。该查询同时更新多个文档。我在https://www.elastic.co/guide/en/elasticsearch/client/java- api/2.3/java-docs- update