Transaction.begin();
SideEffect dbSide = factory.create(side.getSideid());
factory.copyInto(side,dbSide);
Transaction.commit();
}catch(DuplicateKeyException e){
throw new DAOException("A Side effect named " + side.getName() + "has already existed.");
}catch(RollbackException e){
throw new DAOException(e);
}finally{
if(Transaction.isActive()) Transaction.rollback();
}
}