package br.usp.ime.academicdevoir.sessao;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
@Component
public class CriadorDeSessao implements ComponentFactory<Session> {
/**
* @uml.property name="factory"
* @uml.associationEnd multiplicity="(1 1)"
*/
private final SessionFactory factory;
/**
* @uml.property name="session"
* @uml.associationEnd
*/
private Session session;
public CriadorDeSessao(SessionFactory factory) {
this.factory = factory;
}
@PostConstruct
public void open() {
this.session = factory.openSession();
}
public Session getInstance() {
return this.session;
}
@PreDestroy
public void close() {
this.session.close();
}
}