Hibernate 4

3 respostas
F

Pessoal, estou migrando para o Hibernate 4 e estou tendo problemas no HibernateConnectionFilter

minha classe filter:
public class ConexaoHibernateFilter implements Filter {

	private SessionFactory sessionFactory;

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		try {
			this.sessionFactory.getCurrentSession().beginTransaction();
			chain.doFilter(request, response);
			this.sessionFactory.getCurrentSession().getTransaction().commit();
			this.sessionFactory.getCurrentSession().close();
		} catch (Throwable ex) {
			try {
				if (this.sessionFactory.getCurrentSession().getTransaction().isActive()) {
					this.sessionFactory.getCurrentSession().getTransaction().rollback();
				}
			} catch (Throwable t) {
				t.printStackTrace();
			}
			throw new ServletException(ex);
		}
	}

	@Override
	public void init(FilterConfig config) throws ServletException {
		this.sessionFactory = HibernateUtil.getSessionFactory();
	}

}
Se eu criar minha sesstinoFactory como abaixo, não da erro nenhum e funciona perfeitamente no hibernate 4, porem está deprecated:
/*private static final SessionFactory sessionFactory = buildSessionFactory();
	
	private static SessionFactory buildSessionFactory() {
		try {
			Configuration cfg = new Configuration();
			cfg.configure("hibernate.cfg.xml");
			return cfg.buildSessionFactory(); --> Deprecated
		} catch (Throwable e) {
			System.out.println("Criacao inicial do objeto SessionFactory falhou. Erro: " + e);
			throw new ExceptionInInitializerError(e);
		}
	} 

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
Se eu criar minha sesstionFactory como na documentação do hibernate 4 (segue abaixo), da erro na conexaoHibernateFilter: o erro é: createQuery is not valid without active transaction
private static SessionFactory sessionFactory;
	private static ServiceRegistry serviceRegistry; //<--- hibernate 4
	  

	   private static SessionFactory configureSessionFactory() throws HibernateException {
	       Configuration configuration = new Configuration();
	       configuration.configure();
	       serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
	       sessionFactory = configuration.buildSessionFactory(serviceRegistry);
	       return sessionFactory;
	   }  
	  
	     public static SessionFactory getSessionFactory() {
	         return configureSessionFactory();
	     }
}

Alguem sabe como resolver?

3 Respostas

F

Alguem consegue me ajudar?

F

Ninguem?

JARDEL_RODRIGUES

Olha isso ver se ajuda

Criado 15 de maio de 2013
Ultima resposta 18 de mai. de 2013
Respostas 3
Participantes 2