package br.com.caelum.calopsita.persistence.dao;
import java.util.List;
import org.hibernate.Session;
import br.com.caelum.calopsita.model.Card;
import br.com.caelum.calopsita.model.Iteration;
import br.com.caelum.calopsita.plugins.PluginResultTransformer;
import br.com.caelum.calopsita.repository.IterationRepository;
import br.com.caelum.vraptor.ioc.Component;
@Component
public class IterationDao implements IterationRepository{
private final Session session;
private final PluginResultTransformer transformer;
public IterationDao(Session session, PluginResultTransformer transformer) {
this.session = session;
this.transformer = transformer;
}
public void add(Iteration iteration) {
session.save(iteration);
}
public void remove(Iteration iteration) {
session.delete(iteration);
}
public void update(Iteration iteration) {
session.update(iteration);
}
public Iteration load(Iteration iteration) {
return (Iteration) session.load(Iteration.class, iteration.getId());
}
public List<Card> listCards(Iteration iteration) {
return session.createQuery("from Card c where c.iteration = :iteration ")
.setParameter("iteration", iteration)
.setResultTransformer(transformer)
.list();
}
}