SessionScoped et RequestScoped, LazyLoading et EntityManagerUtils.close
	
	
		Bonjour, j'ai un Bean qui est @ManagedBean et @SessionScoped, 
dans une de ses méthodes privées
de la j'appel MaFacade.findBySt
	Code:
	
| 12
 3
 4
 5
 6
 7
 
 |  
                final List<ParentEntity> parents = MaFacade.findBySt(oldId);
                for (final Parent parent : parents ) {
                    for (EnfantEntity enfant : parent.getEnfants()) {
                        enfant.setIdNull();
                    }
                } | 
 Dans ma classe final MaFacade j'ai
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 |  
    public static List<ParentEntity> findByStr(final Integer pId) {
        final EntityManager em = EntityManagerUtils.createEntityManager();
        try {
            final Query findAllByStr = em.createNamedQuery("ParentEntity.findByStr");
            findAllByStr.setParameter("strId", pId);
            final List<ParentEntity> res = findAllByStr.getResultList();
            /*
            for (final ParentEntity parent : res) {
                for (EnfantEntity enfant : parent.getEnfants()) {
                }
            }    
            */     
            return res;
        } finally {
            EntityManagerUtils.close(em);
        }
    } | 
 Dans la liaison parent enfants dans mon entitée, si je suis EAGER tout bien
getEnfants de ParentEntity, si je suis EAGER tout va bien car car getResults est appelé automatiquement à la création de 
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 
 |  
    @OneToMany(mappedBy = "enfant", fetch = FetchType.EAGER)//LAZY
    public List<EnfanttEntity> getEnfants() {
        if (_enfants == null) {
            _enfants = new ArrayList<EnfantEntity>();
        }
        return _enfants;
    } | 
 mais si je passe LAZY
et bien j'ai org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: fr.ParentEntity.enfants, no session or session was closed
effectivement, au moment où j'appel getEnfants, il ne sont pas encore chargé en lazy et mon EntityManager est déjas close
mais bon, mon ManagedBean est @SessionScoped !
je peut décommenter mais appels à parent.getEnfants() pour que cela refonctionne mais cela ramène un peut à faire du EAGER!
Es-ce bien d'avoir mis mes bean en SessionScoped, ne devrai-je pas me mettre en RequestScoped et faire un close de l'EntityManager à la fin de ses Scopes?
Je croyais qu'il fallait éviter de tout monter en session, cela est il justifiable en JSF / PrimeFaces, il y il une raison de le faire?
Que me conseillez vous?