Pessoal boa noite,
Como eu faria para criar ma “estrutura”, que para alguns metodos eu tivesse uma transação.
Eu to usando hibernate e Java 5, mas eu queira umas opniões de como “criar” esquema de transações meio generico que eu pudesse usar com ou sem um framework de persistencia!
Tipo para os metodos updates dos meus DAOs (Exemplo):
void update ( MinhaClasse minhaClasse ){
Transaction transaction = getTransaction();
try{
transaction.begin();
//executa o update
session.update(minhaClasse);
transaction.commit();
}catch(DaoException de){
transaction.rollback();
}finally{
session.close
}
}
pq eu tenho uma Interface que define metodos basicos:
Dao
public interface BasicDao <T extends Serializable>{
/**
* @param user
* @return
* @throws WriteDaoException
*/
T insert(T transientObject) throws WriteDaoException;
/**
* @param news
* @throws WriteDaoException
*/
void update(T transientObject) throws WriteDaoException;
/**
* @param news
* @throws WriteDaoException
*/
void delete(T transientObject) throws WriteDaoException;
/**
* @param id
* @return
* @throws LoadDaoException
*/
T get(Integer id) throws LoadDaoException;
/**
* Returns all registers in repository.
*
* @return
*
* @throws DaoException
*/
List<T> listAll() throws DaoException;
E outras classes que definem metodos especificos de cada classe(Entidade) que é uma inteface tb, e herda os metodos dessa interface!
UserDao
public interface UserDao extends Dao {
/**
* @param login
* @return
* @throws LoadDaoException
*/
User getByLogin(String login) throws LoadDaoException;
E tenho uma implementação dessa interface.
Pergunta? Como eu poderia fazer para que nos metodos que sejam transacionais, ou que eu queira que sejam, eu posso fazer algo que chame o begin(), execute o necssario e se der tudo certo, cahme o commit(), senão rollback().
Valew pessoal!