Domanda
Ultimamente ho deciso di implementare nel mio progetto le transazioni CMT (jBoss5, Hibernate, jta postgres datasource). Tutto funziona bene tranne Hibernate.initialize () nelle mie entità. Funziona con bean EJB ma quando provo a invocare l'inizializzazione nel getter di entità ottengo "impossibile associarlo alla sessione" eccezione. Ha funzionato bene prima di implementare le transazioni. Qualcuno ha lo stesso problema con Accros?
Soluzione
Ok dopo giorni navigando su Internet ho trovato qual è il problema. Quando si contrassegna il metodo come Supporta transazioni. Non li avvia. Se recuperi oggetti fuori transazione, questi sono fuori sessione e quindi non puoi inizializzare le loro proprietà ...
Altri suggerimenti
Dalla seguente pagina di riferimento potrebbe essere necessario assicurarsi che le proprietà correnti siano configurate correttamente per CMT
- imposta
hibernate.transaction.manager_lookup_class
su una strategia di ricerca per il tuo contenitore Java EE (vedi qui per un elenco dei gestori delle transazioni JTA) - imposta
hibernate.transaction.factory_class
suorg.hibernate.transaction.CMTTransactionFactory