package br.com.caelum.calopsita.persistence.dao; import java.util.List; import org.hibernate.Session; import br.com.caelum.calopsita.model.Project; import br.com.caelum.calopsita.model.User; import br.com.caelum.calopsita.repository.UserRepository; import br.com.caelum.vraptor.ioc.Component; @Component public class UserDao implements UserRepository { private final Session session; public UserDao(Session session) { this.session = session; } public void add(User user) { this.session.save(user); } public User find(String login) { return (User) this.session.createQuery("from User where login = :login").setParameter("login", login).uniqueResult(); } public List<Project> listAllFrom(User user) { return this.session.createQuery("from Project p where p.owner = :user or " + ":user in elements(p.colaborators)") .setParameter("user", user).list(); } }