Passei a trabalhar com repositorios... mas cheguei num problema.... Commit e Rollback
Anteriormente meus nomes para os repositorios estavam todos padronizados como se fosse banco de dados... mudei todos os nomes e cheguei a nomes aceitaveis... agora só me falta dar nomes descentes a COMMIT e ROLLBACK ... minha interface esta assim
public interface RepositoriosEntidades<T extends IEntidade> {
//TODO lembrar de trocar esses nomes
public void beginTransaction();
public void commitTransaction();
public void rollbackTransaction();
public void add(T entidade); //antigo save(T entidade);
public void remove(T entidade); //antigo delete(T entidade);
public void remove(Integer id);
public void remove(Long id);
public void remove(BigInteger id);
public void replace(T entidade); //antigo update(T entidade);
public void retrive(T entidade); //antigo load(T entidade);
public T get(Integer id); //antigo selectFromId(Integer id);
public T get(Long id);
public T get(BigInteger id);
public List<T> list(); // antigo selectAll();
public T getNew(); //esse método serve pra criar 1 entidade em branco, não sei 1 nome mais bonito =/
}
RepositoriosEntidades<?> rep = Repositorios.get(); //esse me volta 1 generico
try {
rep.beginTransaction(); //Preciso mudar o nome desse metodo, algo como rep.lock();
rep.add(Pais.class, pais1);
rep.add(Pais.class, pais2);
rep.add(Estado.class, estado1);
rep.add(Estado.class, estado2);
rep.add(Estado.class, estado3);
rep.add(Estado.class, estado4);
rep.add(Cidade.class, cidade1);
rep.add(Cidade.class, cidade2);
rep.add(Cidade.class, cidade3);
rep.add(Cidade.class, cidade4);
rep.commitTransaction(); //Preciso mudar esse nome, algo como rep.unlock();
} catch (EntidadeException ex) {
rep.rollbackTransaction(); //Preciso mudar esse nome, algo como rep.unlockRetrive();
}
O fato é esse algumas horas preciso fazer tranzações, como fazer isso ficar com nomes melhores ?? e essas coisas??
.............
Observacoes... akele é 1 repositorio generico, eu tenho repositorio mais especificos comoRepositorioCidade repCidade = Repositorios.get(Cidade.class);
//neste caso não é preciso passar o nome da cidade...
repCidade.add(cidade1);
repCidade.add(cidade2);
repCidade.remove(cidade4);
//ou fazer consultas do tipo
List<Cidade> cidadesDoBrasil = repCidade.list(brasil);
minha duvida é com o Commit e rollback ... kero eskecer que tem 1 banco de dados que persiste os dados...
mais kero poder fazer tranzações, onde ou tudo é feio, ou nada é feito...
................
Pensei em fazer Collections, e dar um rep.addAll(Collection x); ... porem, pode existir casos, que seja preciso, adcionar em um lugar, dar replace em outro (update) e fazer remove (delete) em outros... nesse caso é melhor fazer algo pra garntir a trazação