Spring 2 e Hibernate 3.2, metodo Salvar tem como simplificar?

3 respostas
smorigo

Boa noite pessoal, estou desenvolvendo uma aplicação para aprender a utilizar Spring, Hibernate, JSF em conjunto e meu metodo para persistir os dados fico meio poluido ao meu ver… é realmente necessario tudo isso?

@Transactional ()
	public String salvarProduto() {
		Session session = SessionFactoryUtils.getSession(getSessionFactory(), true);
		try {
			session.setFlushMode(FlushMode.AUTO);
			getHibernateTemplate().saveOrUpdate(produto);	
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			session.flush();
		}
		return "salvaProduto";
	}

Estou injetando o sessionFactory no meu DAO pelo applicationContext.xml e o filtro do Spring:

<filter>
	  <filter-name>sessionFilter</filter-name>
	  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
	        
  <filter-mapping>
	  <filter-name>sessionFilter</filter-name>
	  <url-pattern>*.jsf</url-pattern>
  </filter-mapping>

tem como simplificar esse metodo ?

[]s

Rafael

3 Respostas

J
@Transactional
public String salvarProduto() {
  getHibernateTemplate().saveOrUpdate(produto);
  return "salvaProduto";
}

Somente. Você não deve modificar nem dar flush manualmente nesse código que é transacionado. Muito menos tratar expection nesse caso.

smorigo

Realmente tentei fazer dessa maneira, mas recebo uma mensagem de erro informando que meu FlushMode não está AUTO ou COMMIT, estou injetando o sessionFactory no meu bean pelo applicationContext.xml

Sabe me falar o pq nao funciona ? :frowning:

plentz

Cole o stacktrace.

Criado 8 de março de 2007
Ultima resposta 10 de mar. de 2007
Respostas 3
Participantes 3