如何使用 @Query 注释在 spring 数据 jpa 中插入自定义查询

How to make insert custom query in spring data jpa by using @Query annotation

我正在使用 mssql 和 spring 数据 JPA,我想通过使用自定义 @Query 注释将新记录插入 table。

public interface CustomerRepository extends JpaRepository<Customers, String>{


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

}

给出错误,

原因:org.hibernate.hql.internal.ast.QuerySyntaxException:期待 OPEN,在第 1 行第 23 列附近发现 'values' [插入 Customers 值 (?1 , ?2)]

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

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

您不会使用 JPQL 执行此操作。您有批量删除和更新,仅此而已。

您的选择是:

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

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