SessionFactory do Hibernate com Spring

4 respostas
prog.tiago

Boa noite,

Acredito que seja simples mas não estou conseguindo fazer esse método funcionar.

Ele deveria pegar a sessionFactory que o Spring criou, mas quando uso o debug percebo que a sessionFactory tá null

package br.com.contecacad.persistencia;

import java.lang.reflect.ParameterizedType;
import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.flex.remoting.RemotingInclude;
import org.springframework.orm.hibernate3.HibernateTemplate;

public class AbstractDAO<T> {

	protected HibernateTemplate template;
	protected Class<T> classVO = null;

	@SuppressWarnings("unchecked")
	public AbstractDAO() {
		this.classVO = (Class<T>) ((ParameterizedType) getClass()
				.getGenericSuperclass()).getActualTypeArguments()[0];
	}


	@Autowired
	public void setSessionFactory(SessionFactory sessionFactory) {
		template = new HibernateTemplate(sessionFactory);
	}
	
	@RemotingInclude
	public void adiciona(T t){
		template.save(t);
	}
	
	@RemotingInclude
	public void remove(T t){
		template.delete(t);
	}
	
	public void atualiza(T t){
		template.update(t);
	}
	
	@SuppressWarnings("unchecked")
	@RemotingInclude
	public List<T> getLista(){
		return template.find(String.format("from %s", this.classVO.getName()));
	}
	
	@SuppressWarnings("unchecked")
	@RemotingInclude
	public List<T> findByExample(T t){
		return template.findByExample(t);
	}

}

O código de teste é:

public static void main(String[] args) {
		
		UsuarioViewDAO dao=new UsuarioViewDAO();
		List<UsuarioView> lista = dao.getLista();
		for (UsuarioView usuarioView : lista) {
			System.out.println(usuarioView.getUsuario());
		}

A exception gerada:

Exception in thread "main" java.lang.NullPointerException at br.com.contecacad.persistencia.AbstractDAO.getLista(AbstractDAO.java:47) at br.com.contecacad.valueObjects.papercutNative.ListarUsuariosView.main(ListarUsuariosView.java:13)

Comecei a usar spring a pouco tempo, mas acho que fiz besteira. :-o

Abraços

4 Respostas

von.juliano

Dê uma olhada aqui, é uma forma bem legal de integrar os dois, sem precisar usar HibernateTemplate.

Flw! :thumbup:

prog.tiago

Ótima forma de utilização Juliano,

Mas eu gostaria de saber o que está errado com meu código. Aparentemente está tudo certo.

O que pode ser?

Abraço

von.juliano

O código de teste não funciona, porque não sobe o contexto do spring.

prog.tiago

Devo usar alguma anotation?

O que posso fazer?

Criado 27 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 4
Participantes 2