Spring Data注解@Query 查询未返回任何结果

JPQL执行报错:

org.postgresql.util.PSQLException:查询未返回任何结果
org.postgresql.util.PSQLException:  No results returned by the query 

分析

在@Query注解中编写JPQL实现 DELETEUPDATE 操作的时候必须加上**@Modifying** 注解,以通知Spring 这是一个DELETE或UPDATE操作。

 @Modifying
 @Query(value = "UPDATE crsm_call_record SET status = ?2 WHERE bind_id = ?1;",nativeQuery = true)
 void updateRecordStatusById(String bindId,Integer status);

再次运行报错

org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query

Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query

说明

  • UPDATE或者DELETE操作需要使用事务,此时需要在Service层的方法上添加事务操作。
  • 注意JPQL不支持INSERT操作。
@Slf4j
@Service
@Transactional
public class CrsmCallRecordServiceImpl implements CrsmCallRecordService {

JPQL:Java Persistence Query Language,即JPA查询语句。

猜你喜欢

转载自blog.csdn.net/weixin_36908494/article/details/107537713