Olá,
sou novo com hibernate aos mais experientes poderia me dar uma informaçõa qual forma seria
melhor a utilização…
Pois vou criar um GErador para cada classe que tenho por exemplo
- GEradorCliente , GEradorFornecedor…
E abaixo estou usando para cada metodo (crud) abrindo Session do HIbernate …
É melhor criar um ServiceLocator com um campo static (Singleton) e para cada acesso
ter sempre uma instancia ou existe outra forma ???
Pois haverá pelo menos 1.000.000 de acessos ao dia ??? o que seria melhor
se alguém puder me ajudar agradeceria ???
public class GeradorCliente {
public void salvar(Cliente cliente){
try{
//SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
SessionFactory sf = new Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml")
.buildSessionFactory();
Session session = sf.openSession(); //Abre sessão
Transaction tx = session.beginTransaction(); //Cria transação
session.save(cliente); //Realiza persistência
tx.commit(); //Fecha transação
session.close(); //Fecha sessão
}catch(Exception e2){
e2.printStackTrace();
}
}
public Cliente selecionaCliente(int codigoCliente){
Cliente cliente = new Cliente();
try{
//SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
SessionFactory sf = new Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml")
.buildSessionFactory();
Session session = sf.openSession(); //Abre sessão
Transaction tx = session.beginTransaction(); //Cria transação
//Busca objeto aluno da base de dados com chave primária = 1
cliente = (Cliente) session.get(Cliente.class, codigoCliente);
}catch(Exception e2){
e2.printStackTrace();
}
return cliente;
}
public void Deleta(Cliente cliente){
//SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
SessionFactory sf = new Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml").buildSessionFactory();
Session session = sf.openSession(); //Abre sessão
Transaction tx = session.beginTransaction(); //Cria transação
session.delete (cliente);
tx.commit();
session.close();
}
public void Altera (Cliente cliente){
//SessionFactory deve ser criado uma única vez durante a execuçãoda aplicação
SessionFactory sf = new Configuration().configure("/br/com/modelo/model/hibernate.cfg.xml").buildSessionFactory();
Session session = sf.openSession(); //Abre sessão
Transaction tx = session.beginTransaction(); //Cria transação
session.saveOrUpdate(cliente);
tx.commit();
session.close();
}
}