Olá pessoal do fórum,
tive estudando Hibernate esses dias, e me surgiu algumas dúvidas. Apostilas sobre o assunto tem aos montes na internet
ensinando a fazer a persistencias de várias formas. Por exemplo:
public class ClienteDAO {
private final Session session;
public ClienteDAO() {
this.session = HibernateUtil.getSession();
}
public void cadastrar(Cliente cliente) {
Transaction tx = session.beginTransaction();
session.save(cliente);
tx.commit();
session.close();
@SuppressWarnings("unchecked")
public List<Cliente> getListaDeClientes(){
return session.createCriteria(Cliente.class).list();
}
}
Minha dúvida é, por que eu tenho que colocar session.close() quando é pra salvar,
mas quando é pra retornar a lista não precisa???
....
Outra coisa, qdo eu usa o PreparedStatement, eu podia fazer isso:
PreparedStatement stmt = con.prepareStatement("delete cliente where cpf=?");
E iria remover o cliente com aquele CPF, como fazer isso com o Hibernate??
Nos exemplos que li, o método de atualização ou remorção ficaram assim:
public void remover(Cliente cliente){
Transaction tx = session.beginTransaction();
session.delete(cliente);
tx.commit();
session.close();
}
public void atualizar(Cliente cliente){
Transaction tx = session.beginTransaction();
session.update(cliente);
tx.commit();
session.close();
}
Como o Hibernate vai saber qual cliente remover ou atualizar?? :idea:
Não tem como deixar isso mais específico??
Grato desde já
Jonh