package tudu.domain.dao.jpa; import org.springframework.orm.ObjectRetrievalFailureException; import org.springframework.stereotype.Repository; import tudu.domain.dao.TodoListDAO; import tudu.domain.model.TodoList; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; /** * Hibernate implementation of the tudu.domain.dao.TodoListDAO interface. * * @author Julien Dubois */ @Repository public class TodoListDAOJpa implements TodoListDAO { private EntityManager em; @PersistenceContext public void setEntityManager(EntityManager em) { this.em = em; } /** * Find a Todo List by ID. * * @see tudu.domain.dao.TodoListDAO#getTodoList(String) */ public final TodoList getTodoList(final String listId) { TodoList todoList = this.em.find(TodoList.class, listId); if (todoList == null) { throw new ObjectRetrievalFailureException(TodoList.class, listId); } return todoList; } /** * Save a Todo List. * * @see tudu.domain.dao.TodoListDAO#saveTodoList(tudu.domain.model.TodoList) */ public final void saveTodoList(final TodoList todoList) { this.em.persist(todoList); } /** * Update a Todo List. * * @see tudu.domain.dao.TodoListDAO#updateTodoList(tudu.domain.model.TodoList) */ public final void updateTodoList(final TodoList todoList) { this.em.merge(todoList); } /** * Delete a Todo List by ID. * * @see tudu.domain.dao.TodoListDAO#removeTodoList(String) */ public final void removeTodoList(final String listId) { TodoList todoList = getTodoList(listId); this.em.remove(todoList); } }