/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/java/java-503-22-017/main.java
36 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
import org.springframework.Data.jpa.repository.*; import org.springframework.Data.repository.query.Param; import java.util.List; import java.util.Optional; public interface BookRepository extends JpaRepository<Book, Long> { // Генерация по имени метода List<Book> findByAvailableTrue(); List<Book> findByAuthorAndPublishedYear(String author, Integer year); Optional<Book> findByIsbn(String isbn); // Проекция: интерфейс interface BookTitleAuthor { String getTitle(); String getAuthor(); } // Возврат проекции List<BookTitleAuthor> findTop5ByAvailableTrueOrderByPublishedYearDesc(); // Явный JPQL @Query("SELECT b FROM Book b WHERE LOWER(b.title) LIKE LOWER(CONCAT('%', :query, '%'))") List<Book> searchByTitleFragment(@Param("query") String query); // Нативный SQL (осторожно!) @Query(value = """ SELECT b.*, COUNT(r.id) as reservation_count FROM books b LEFT JOIN reservations r ON b.id = r.book_id AND r.status = 'ACTIVE' GROUP BY b.id HAVING COUNT(r.id) < :maxReservations """, nativeQuery = true) List<Object[]> findBooksUnderReservationLimit(@Param("maxReservations") int maxReservations); }