代码之家  ›  专栏  ›  技术社区  ›  Scarlett John

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

  •  1
  • Scarlett John  · 技术社区  · 7 年前

    我目前正在从事SpringBoot+Hibernate项目。 我需要在DB中插入几个值。

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

    @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
    

    你能帮我一下吗?

    1 回复  |  直到 7 年前
        1
  •  5
  •   Scarlett John    7 年前

    我能够解决上述问题。

    我必须为我的存储库方法指定@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);