Sto tentando di accedere alla factory di sessione di Hibernate ma sto ricevendo il seguente errore nella riga menzionata.Access SessionFactory da Spring Boot Application
No CurrentSessionContext configured!
codice
@Service
@Transactional
public class GenericSearchImpl implements GenericSearch {
@Autowired
private EntityManagerFactory entityManagerFactory;
@Override
@SuppressWarnings("unchecked")
public <T> List<T> search(final Class<T> type, final String[] criteriaList, final int page, final int perPage) {
Session session = getSession();
...
}
public Session getSession() {
final HibernateEntityManagerFactory emFactory = (HibernateEntityManagerFactory) entityManagerFactory;
final SessionFactory sessionFactory = emFactory.getSessionFactory();
return sessionFactory.getCurrentSession(); //ERROR No CurrentSessionContext configured!
//This worked but I understand it to be BAD as spring should be managing open sessions.
// try {
// return sessionFactory.getCurrentSession();
// } catch (Exception e) {
// return sessionFactory.openSession();
// }
}
...
}
Qualsiasi idea del perché?
APP non utilizzare la classe 'CurrentSessionContext'. La sua configurazione dovrebbe risolvere il tuo problema. Aggiungi semplicemente la configurazione per il contesto di sessione corrente e lascia che punti alla classe 'org.springframework.orm.hibernate4.SpringSessionContext'. Comunque perché stai provando questo? Perché non usare il semplice JPA? –
@ M.Deinum Sto facendo questo per supportare alcuni codici legacy che utilizzano i Criteri di ibernazione. Alla fine verrà convertito in JPA. Il resto dell'applicazione utilizza spring-data-jpa, ho solo bisogno di Hibernate SessionFactory temporaneamente finché non può essere riscritto. Un approccio ibrido come questo funziona? Puoi dare un esempio di configurazione di CurrentSessionContext come bean spring in java config? – jax
È [questo] (http://stackoverflow.com/questions/26667910/no-currentsessioncontext-configured?answertab=active#tab-top) cosa intendi? – jax