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

如何使用@query注释在spring数据jpa中进行insert自定义查询

古起运
2023-03-14

我正在使用mssql和spring数据JPA,我想通过使用自定义查询注释将新记录插入到表中。

public interface CustomerRepository extends JpaRepository<Customers, String>{


    @Modifying
    @Query("insert into Customers values (?1 , ?2)")
    public void saveCutomer(int custId, Customer cust);

}

它的给定错误,

原因:组织。冬眠hql。内部的ast。QuerySyntaxException:应为打开,在第1行第23列[插入到客户值(?1,?2)]附近找到“值”

我也试过下面,同样的错误。

@Modifying
    @Query("insert into Customers select ?1 , ?2")
    public void saveCutomer(int custId, Customer cust);

共有1个答案

路思源
2023-03-14

您不能使用JPQL这样做。您有批处理DELETE和UPDATE,但仅此而已。

您的选择包括:

1) 如果确实进行了显式插入,请将查询标记为本机(不推荐),除非您打算使用JPQL不支持的特定于数据库的语法。

2)在您的存储库上使用标准的保存(Entity)方法,这当然是更可取的。

 类似资料:
  • 我们正在尝试在Spring中为我们的rest api创建一个自定义注释。我是创建自定义注释的新手,我已经给出了下面的代码片段 Spring Boot应用程序-- RestController- 自定义注释-- 注解处理器 方法回调-- 我试图处理自定义注释在一个类中实现BeanPost处理器,但我有一个问题 Issue_1:回调被调用一次,但是我不能对 /service/v1/version应用编

  • 我在这里创建了一个类似于教程的Web应用程序:https://spring.io/guides/tutorials/react-and-spring-data-rest/ . 我已经添加了后gresql数据库,一切正常。我有一个基本查询查找我的存储库中的By用户名(字符串名称),工作正常。我的问题是,由于某种原因我无法创建自定义查询,例如 . 假设我做了一个测试,我只想得到这个语句的值。我说的不能

  • 使用Spring Boot应用程序。我有一个类UserService,我在其中创建了一个动态查询,根据请求参数具有多个or条件: 我有UserRepository接口,我需要执行这个查询。到目前为止,我使用了findById等JPA函数或@Query(“从事件中选择id”)。 如何将此查询从服务类传递到存储库并执行它?

  • 我是Spring Jpa和Hibernate的新手。我试图使用一个定制函数从Oracle数据库中获取数据。我可以定义一个实体及其相关的服务、实现和存储库。此外,我通过使用< code>registerFunction创建了一个新的定制Oracle方言,如下所示。 所以我有两个问题: 1)在我的Oracle数据库中,函数位于不同的模式下。我需要指定它的模式吗?如果是的话怎么做?还是hibernate

  • 在我的数据库中,我有一个具有以下属性的表“CITA”:id,fecha\u hora,description,id\u empleado,id\u cliente。 我还有一个Spring JPA存储库: 我需要这个查询: 我的问题是我不知道我应该把它放在哪里来还给我像地图这样的东西 因为它不起作用: 编辑 如果我试图从我的REST控制器调用estadistic as(),我有一个错误。 这是我的

  • 我正在尝试使用Spring安全注释,如@PreAuthorize和@安全,但我希望评估用户不是在一个角色上,而是他们是否拥有对特定实体的权限,在这种情况下是一家公司。在我的控制器中,我收到一个超文本传输协议请求,其中包含一个firmId作为参数,我想确保这个用户被允许进入这家公司。是否可以使用当前的Spring安全注释?。我正在寻找一个优雅的解决方案,我一直在寻找自定义约束验证器作为jsr303规