Boa noite galera…
Estou com uma dúvida conceitual…
Estou trabalhando com JSF 1.2(Mojarra+Facelets+Primefaces) e JPA 1.0 (Hibernate), através do JBoss AS 5.1.
Meus ManagedBeans estão implementados como um exemplo abaixo:
Obs. Esse MB está configurado com escopo de sessão.
public class RoboMB {
@PersistenceContext(unitName="myUnit")
private EntityManager em;
@Resource
private UserTransaction ut;
private DictionaryRepository dictionaryRepository;
@PostConstruct
public void init(){
this.dictionaryRepository = DAOFactory.createDictionaryDAO(this.em);
}
Pois bem, nunca trabalhei com JSF, e estou entendendo que o container se comportará de forma parecida que ele se comporta com os EJBs…
Se não me engano, no caso dos EJBs stateless, o container controla a qte de instancias de beans no pool(podendo ser configurado), e quando as elimina, mata as entity managers, e no caso dos statefuls, a passivação e ativação tb mata as entity managers, cuidando assim dos objetos caros(conexões com DB), além dos controles transacionais CMT e BMT, estou certo?
E no caso do meu managed beam acima, como funciona? Esse codigo funciona perfeitamente, mas é a forma mais correta de se trabalhar com entity manager e transactions nos Managed Beans?? existe uma boa prática? estou usando tudo de javax.*, funcionaria em outros containers como websphere e weblogic ??
Obrigado,