/
Andreybtw
/
hotels-api
Обзор
Документация
Войти
/
Andreybtw
/
hotels-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/dao/HotelDaoLocalImpl.java
52 строки
1 KB
Andrey Medvedev
3
18 июн 2025, 13:46
18 июн 2025, 13:46
0cac3c4
Код
Авторство
О чём код?
package dao; import entities.Hotel; import jakarta.ejb.Stateless; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jakarta.persistence.TypedQuery; import java.util.List; import java.util.Optional; @Stateless public class HotelDaoLocalImpl implements HotelDaoLocal{ @PersistenceContext(unitName = "hotelPU") private EntityManager em; @Override public Hotel create(Hotel hotel) { em.merge(hotel); return hotel; } @Override public void delete(Long id) { Hotel hotel = em.find(Hotel.class, id); if (hotel != null) { em.remove(hotel); } } @Override public Optional<Hotel> findById(Long id) { return Optional.ofNullable(em.find(Hotel.class, id)); } @Override public List<Hotel> findAll(int page, int size, boolean sortByName) { String baseQuery = "SELECT h FROM Hotel h LEFT JOIN FETCH h.address"; if (sortByName) { baseQuery += " ORDER BY h.name ASC"; } TypedQuery<Hotel> query = em.createQuery(baseQuery, Hotel.class); query.setFirstResult(page * size); query.setMaxResults(size); return query.getResultList(); } @Override public long countAll() { return em.createQuery("SELECT COUNT(h) FROM Hotel h", Long.class) .getSingleResult(); } }