spring-data-jpa JPQL -用于删除数据库条目并返回与已删除条目ID不同的属性的自定义查询

blmhpbnm  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(71)

在JPQL中,是否有一种方法可以从数据库中删除一行并返回被删除行的属性?
例如,给定一个存储图书的数据库,我想删除一个给定ID的图书并返回book-title。
我试图在我的BookRepository中实现一个自定义查询,它扩展了JpaRepository:

public interface BookRepository extends JpaRepository<Book, Long> {

  @Transactional
  @Modifying
  @Query("DELETE FROM Book b WHERE b.id = ?1")
  String deleteBookById(Long id);

查询缺少返回书名的部分。有人能帮助我吗?

von4xj4u

von4xj4u1#

如果你使用的是PostgreSQL,你可以使用returning子句来实现这个目的:

@Transactional
@Query(value = "DELETE FROM Book b WHERE b.id = ?1 RETURNING title", native = true)
String deleteBookById(Long id);

相关问题