Bonjour,
Je développe un projet avec EJB3
J'ai quelques questions sur l'utilisation d'hybernate:
Je n'ai mappé aucune relation avec EAGER, c'est lazy partout, pour des soucis d'optimisation.
J'utilise cette déclaration pour manipuler ma base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
@PersistenceContext(unitName = "monContexte")
protected EntityManager em;
Puis je savoir la différence avec celle ci ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
En d'autres termes pourquoi passer par une session plutot qu'un entityManager?
-Pour des relations entre classes , quand j'effectue un em.find, à quel moment les collections ou les objets liés à l'entité sont dispo pour utilisation? est ce lorsque je ferai le premier getxxxxx ? le comportement changerait il si je devais effectuer ce find plutôt avec une session?
-Si le premier getXXXXXXXX vous donne accès directement à la collection ou l'objet liée (ceci quelque soit la politique mappée EAGER/LAZY), dans ce cas je ne comprends pas quand utiliser l'un ou l'autre, puisque de toute facon pour acceder une propriété on fera toujours un getXXXXXX dessus.
-Avec la classe entityManager que j'utilise, vu que je suis en EJB3 j'ai pas besoin de declarer de transaction qcq pour flusher sur la base de donnée, pourtant en passant par la session d'hibernate on dit que pour prendre en compte les modifications ils faut faire un commit explicite... peut on s'en passer de l'appel commit avec EJB3 sur les sessions hybernate?

Désolé pour la longueur du post, ce sont des questions qui me turlipinent, les réponses me permettront de revoir ma politique de requetage.
Merci d'avance.