Repositorio de entidade (Duvidas com commit e rollback )

0 respostas
Lavieri

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 =/
}
estou usando assim
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 como
RepositorioCidade 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

Criado 14 de dezembro de 2008
Respostas 0
Participantes 1