Native Query INSERT is giving ERROR : Method is only allowed for a Query

Native Query INSERT is giving ERROR : Method is only allowed for a Query

我目前正在做一个 SpringBoot + Hibernate 项目。 我需要向数据库中插入一些值。

我正在尝试使用本机查询来实现这一点。以下是我的代码:

@Repository
public interface StoreDataRepository extends JpaRepository<StoreDataRepository, Long> {

    @Query(value ="insert into store (id, name) values(:id, :name)", nativeQuery = true)
    public void storeData(@Param("id") int id, @Param("name") String name);

在我的服务中,我只是用 id 和 name 参数调用这个方法。

但我收到以下错误:

org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Method only for queries

你能帮我解决这个问题吗?

我能够解决上述问题。

我必须为我的 Repository 方法指定 @Transactional 和 @Modifying。

下面解决了这个问题。

@Repository
public interface StoreDataRepository extends JpaRepository<StoreDataRepository, Long> {

    @Trsansactional
    @Modifying
    @Query(value ="insert into store (id, name) values(:id, :name)", nativeQuery = true)
    public void storeData(@Param("id") int id, @Param("name") String name);