JPA - Hibernate

Ola.

Estou fazendo uma aplicação desktop com JPA e Hibernate. Inicialmente um pequeno projeto com as operações CRUD. Bom, consigo Inserir, Consultar e Remover, porém, quando trata-se de alteração (atualização de dados) não estou tendo sucesso. Usei persist, merge … mas nada. Alguem teria alguma sugestão?
Atenciosamente.
Marcos.

[quote=mpisching]Ola.

Estou fazendo uma aplicação desktop com JPA e Hibernate. Inicialmente um pequeno projeto com as operações CRUD. Bom, consigo Inserir, Consultar e Remover, porém, quando trata-se de alteração (atualização de dados) não estou tendo sucesso. Usei persist, merge … mas nada. Alguem teria alguma sugestão?
Atenciosamente.
Marcos.[/quote]

Tenta algo assim:

public void salvarFornecedor() {
		Session session = HibernateUtil.getCurrentSession();
		DAO<Fornecedor> dao = new DAO<Fornecedor>(session, Fornecedor.class);
		if(fornecedor.getId()==null){
		dao.salveOrUpdate(this.fornecedor);
		}else{
			session.merge(this.fornecedor);
		}
		this.fornecedor = new Fornecedor();

	}




No DAO
@SuppressWarnings("unchecked")
	public void salveOrUpdate(T t) {
		session.saveOrUpdate(t);
	}

:smiley:

Beleza. Deu certo.

Valeu.

[quote=mpisching]Beleza. Deu certo.

Valeu.[/quote]

Blz, []s :smiley:

pode me ajudar me dando um exemplo de um DAO usando a JPA? estou acostumado com o JDBC puro e me enrolando pra migrar pra nova estrutura…

valew!

[quote=AugustoCSS]pode me ajudar me dando um exemplo de um DAO usando a JPA? estou acostumado com o JDBC puro e me enrolando pra migrar pra nova estrutura…

valew![/quote]

Opa, um exemplo simples aí de DAO generico :smiley:
[]

[code]public class DAO {
// T = Type ou seja tipo
private Session session;

private Logger logger = Logger.getLogger(DAO.class);

// criado p/ pegar a classe q vai no método load e generics q nao permite
// chamar atributos e metodos
private Class classe;

public DAO(Session session, Class classe) {
	this.session = session;
	this.classe = classe;
}


@SuppressWarnings("unchecked")
public void save(T t) {
	logger.info("salvando " + t);
	session.save(t);
}

@SuppressWarnings("unchecked")
public T load(Long id) {
	logger.info("lendo " + classe + " id: "+id);
	return (T) session.load(classe, id);
}

@SuppressWarnings("unchecked")
public void salveOrUpdate(T t) {
	session.saveOrUpdate(t);
}

public void deleta(T t) {
	logger.info("deletando " + t);
	session.delete(t);
}

@SuppressWarnings("unchecked")
public List<T> list() {
	// Critéria API
	Criteria criteria = getSession().createCriteria(classe);
	return criteria.list();
}

// Criado p/ as outras classes conseguirem ver
public Session getSession() {
return session;
}

public void setSession(Session session) {
	this.session = session;
}



public List<String> buscaNomeFornecedor(String buscaNomeFornecedor){
	Criteria criteria = session.createCriteria(Fornecedor.class);
	criteria.add(Restrictions.ilike("nome", buscaNomeFornecedor + "%"));
	criteria.addOrder(Order.asc("nome"));
	criteria.setProjection(Projections.property("nome"));
	return criteria.list();
	
	
}

}[/code]

:smiley:

Valeu, aprendi na Caelum :smiley:

[quote=Victor Maehira]Imagino que vc deve ter feito o “web avançado”, não?! Gostou do curso? Qual sua opinião? O Guilherme que deu o curso?!
Eu fiz o primeiro módulo e curti!!
Valeu![/quote]

Sim o FJ26, adorei o curso excelente, recomento quem já sabe Java Web a fazer pq aprende mta coisa q se utiliza em agilidade de desenvolvimento, quem deu o curso foi o Sérgio Lopes, vale mto a pena desse INVESTIMENTO na carreira :smiley:

Acho que pode te ajudar http://code.google.com/p/jpa-component/wiki/Doc_PT_Br

Cara… ficou muuuito legal esse DAO genérico! Nunca tinha pensado nisso! Parabéns!

Imagino que vc deve ter feito o “web avançado”, não?! Gostou do curso? Qual sua opinião? O Guilherme que deu o curso?!
Eu fiz o primeiro módulo e curti!!
Valeu!