Interface BorrowingRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<Borrowing,Long>, org.springframework.data.jpa.repository.JpaRepository<Borrowing,Long>, org.springframework.data.repository.ListCrudRepository<Borrowing,Long>, org.springframework.data.repository.ListPagingAndSortingRepository<Borrowing,Long>, org.springframework.data.repository.PagingAndSortingRepository<Borrowing,Long>, org.springframework.data.repository.query.QueryByExampleExecutor<Borrowing>, org.springframework.data.repository.Repository<Borrowing,Long>

@Repository public interface BorrowingRepository extends org.springframework.data.jpa.repository.JpaRepository<Borrowing,Long>
  • Method Details

    • findByUserId

      List<Borrowing> findByUserId(Long userId)
    • findByBookId

      List<Borrowing> findByBookId(Long bookId)
    • deleteByBookId

      void deleteByBookId(Long bookId)
    • findLatestBorrowing

      @Query("SELECT b FROM Borrowing b WHERE b.book.id = :bookId AND b.user.id = :userId ORDER BY b.borrowDate DESC LIMIT 1") Borrowing findLatestBorrowing(Long bookId, Long userId)
    • findBooksByUserId

      @Query("SELECT b FROM Book b JOIN Borrowing br ON br.book.id = b.id WHERE br.user.id = :userId") List<Book> findBooksByUserId(Long userId)
    • findBooksBorrowedByUserId

      @Query("SELECT b FROM Book b JOIN Borrowing br ON br.book.id = b.id WHERE br.user.id = :userId AND br.returnDate IS NULL") List<Book> findBooksBorrowedByUserId(Long userId)
    • findBorrowingsByBookIdAndUserId

      @Query("SELECT br FROM Borrowing br WHERE br.book.id = :bookId AND br.user.id = :userId") List<Borrowing> findBorrowingsByBookIdAndUserId(Long bookId, Long userId)
    • findActiveBorrowingsByBookIdAndUserId

      @Query("SELECT b FROM Borrowing b WHERE b.book.id = :bookId AND b.user.id = :userId AND b.returnDate IS NULL") List<Borrowing> findActiveBorrowingsByBookIdAndUserId(Long bookId, Long userId)
    • findActiveBorrowingByBookIdAndUserId

      @Query("SELECT b FROM Borrowing b WHERE b.book.id = :bookId AND b.user.id = :userId AND b.returnDate IS NULL") Optional<List<Borrowing>> findActiveBorrowingByBookIdAndUserId(Long bookId, Long userId)
    • findLatestBorrowedBook

      @Query(value="SELECT * FROM borrowings WHERE book_id = :bookId AND user_id = :userId AND return_date IS NULL ORDER BY borrow_date DESC LIMIT 1", nativeQuery=true) Optional<Borrowing> findLatestBorrowedBook(Long bookId, Long userId)
    • findActiveBorrowingsByBookId

      @Query("SELECT b FROM Borrowing b WHERE b.book.id = :bookId AND b.returnDate IS NULL") List<Borrowing> findActiveBorrowingsByBookId(Long bookId, Long userId)