org.postgresql.util.PSQLException:查询未返回任何结果

时间:2016-04-27 16:09:57

标签: postgresql spring-boot

嘿大家都试图在我的春季启动应用中使用@Query注释在表格中插入数据我得到了一个postgres例外:

org.postgresql.util.PSQLException:  No results returned by the query 

这是我的代码:

这是存储库

@Query(value="INSERT INTO \"FCT_BY_DEV\"(\"IdDev\", \"IdFonction\") VALUES (?, ?) ",nativeQuery=true)
public String isertfonctionstodev(int dev,int fonction);

这是控制器:

@RequestMapping(value="/function/insert", method = RequestMethod.POST)
public String insererfonctions (int dev,int fonction){
    System.out.println("dev="+dev+"fonction="+fonction);
     fonctionRepository.isertfonctionstodev(dev, fonction);
     System.out.println("********");
     return "aaa";
 }

我在angularJs

中使用$ http
$http.post("/function/insert?dev="+$scope.id+"&fonction="+$scope.idf);

最后这是服务器日志

dev=16006fonction=14
Hibernate: INSERT INTO "FCT_BY_DEV"("IdDev", "IdFonction") VALUES (?, ?) 
 2016-04-27 16:52:03.204  WARN 7036 --- [nio-8080-exec-2]    o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: 02000
 2016-04-27 16:52:03.204 ERROR 7036 --- [nio-8080-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper   : Aucun résultat retourné par la requête.

数据是正确的,我尝试使用相同的值进行相同的查询,并且它解决了为什么posgres正在生成此异常以及如何修复,感谢任何帮助

2 个答案:

答案 0 :(得分:12)

我认为修改查询必须注意额外的

@Modifying

答案 1 :(得分:0)

这应该可以解决您的问题:

@Transactional
@Modifying(clearAutomatically = true)
@Query(value="update policy.tbl_policy set ac_status = 'INACTIVE' where pol_id = :policyId and version_no = :version_no and ac_status = 'ACTIVE'", nativeQuery=true)
public void updateExistingRowbyId(@Param("policyId") Long pol_id, @Param("version_no") Long version_no);

没有@Transactional批注,可能会发生以下错误: javax.persistence.TransactionRequiredException:执行更新/删除查询