package info.ozkan.vipera.dao.notification; import info.ozkan.vipera.entities.Doctor; import info.ozkan.vipera.entities.Notification; import java.util.List; import javax.inject.Named; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * {@link NotificationDao} arayüzünün implementasyonu * * @author Ömer Özkan * */ @Named("notificationDao") public class NotificationDaoImpl implements NotificationDao { /** * Hekime ve sağlayıcıya göre veritabanından bildirimleri sorgulamak için * tanımlanan JQL sorgusu */ private static final String JQL_GET_BY_DOCTOR = "from Notification n WHERE n.doctor = :doctor AND n.provider = :provider"; /** * persistence context */ private EntityManager em; /** * Veritabanına bildirimleri kaydeder */ public void saveAll(final List<Notification> notifications) { for (final Notification notification : notifications) { em.persist(notification); } } public List<Notification> getAll(final Doctor doctor, final String provider) { final Query query = em.createQuery(JQL_GET_BY_DOCTOR); query.setParameter("doctor", doctor); query.setParameter("provider", provider); return query.getResultList(); } /** * @param entityManager * the entityManager to set */ @PersistenceContext public void setEntityManager(final EntityManager entityManager) { em = entityManager; } }