本机查询插入给出错误:方法仅允许用于查询

Sca*_*ohn 2 java hibernate nativequery spring-data-jpa

我目前正在从事 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);
Run Code Online (Sandbox Code Playgroud)

从我的服务中,我只是使用 id 和 name 参数调用此方法。

但我收到以下错误:

org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Method only for queries
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?

Sca*_*ohn 5

我能够解决上述问题。

我必须为我的存储库方法指定 @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);
Run Code Online (Sandbox Code Playgroud)