package fi.otavanopisto.pyramus.dao.accommodation; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import fi.otavanopisto.pyramus.dao.PyramusEntityDAO; import fi.otavanopisto.pyramus.domainmodel.accommodation.Room; import fi.otavanopisto.pyramus.domainmodel.accommodation.RoomType; import fi.otavanopisto.pyramus.domainmodel.accommodation.Room_; @Stateless public class RoomDAO extends PyramusEntityDAO<Room> { public Room create(String name, RoomType type) { Room room = new Room(); room.setName(name); room.setType(type); return persist(room); } public List<Room> listByType(RoomType type) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<Room> criteria = criteriaBuilder.createQuery(Room.class); Root<Room> root = criteria.from(Room.class); criteria.select(root); criteria.where(criteriaBuilder.equal(root.get(Room_.type), type)); return entityManager.createQuery(criteria).getResultList(); } public Room updateName(Room room, String name) { room.setName(name); return persist(room); } public void delete(Room room) { super.delete(room); } }