如何在sprint数据存储库中使用自定义SQL?

时间:2019-10-29 13:53:23

标签: spring-boot jpa spring-data

我正在使用存储库,例如:

public interface UserRepository extends Repository<User, Long> {

  List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
}

但是我需要执行自己的sql statement

select u.* from users u where exists ( select 1 from expires_users where users_id = u.id )

请过去回答中的链接引用。

1 个答案:

答案 0 :(得分:1)

我认为您可以按照documentation of Spring Data JPA中的指示进行操作。

这里是一个例子:

public interface UserRepository extends JpaRepository<User, Long> {

  @Query("select u.* from User u 
          where exists(select 1 from ExpiredUser e where e.id = u.id)")
  Page<User> findExpiredUsers(Pageable pageable);
}

页面可分页部分用于分页结果,假设此查询返回的结果可能比您要立即处理的结果多得多。有关分页结果的更多信息,请参见here