bem essas são algumas de minhas dúvidas de implementação do prevayler2:
pelo que eu entendi as três formas abaixo fazem a mesma coisa, a segunda, roda apenas em memória, por isso não precisamos passar a prevalenceBase.(aliás onde é que eu defino o nome do prevalenceBase?) mas qual a diferença entre os outros dois? qual o melhor?
createPrevayler() eh um metodo pra facilitar, ao inves de ter que usar os metodos configure*().
O Transient Prevayler deve ser usado apenas para testes, onde vc precisa da execucao mais rapida possivel, e nao quer emporcalhar a area de testes com nada salvo em disco
Então o modo Transient não gera log :?:
quando dizem que não entenderam minha dúvida eu penso: será q perguntei alguma besteira? :oops:
mas eu admito q não domino a linguagem e continuo perguntando.
Então lá vai outra pergunta:
em vias de regra quais as classes que eu devo usar o implements Serializable?
por exemplo, no aplicativo que estou tentando fazer, tenho uma classe cidade, uma classe rota e uma classe SR que possui um map de cidades e rotas, nela eu quero buscar as rotas entre as cidades escolhidas.
Eu devo usar implements Transaction ou Serializable nessa classe(SR)?
(vcs devem estar se perguntando: será q esse cara sabe o q está fazendo )
Eu respondo: não muito, na verdade java não é minha praia, mas eu gosto do desafio.
Nao, o TransientPrevayler nao faz nenhum tipo de IO - ele eh usado so pra testes, mesmo
Sobre onde implementar Serializable, voce DEVE tornar todos os objetos de negocio e Transactions do seu sistema prevalente serializaveis. Isso nao quer dizer que eh soh lascar um implements Serializable na classe e tá resolvido. Se voce quer usar o Prevayler sem dores de cabeca vc PRECISA conhecer bem o mecanismo de serializacao do Java
(ainda bem que a serializacao nem eh tao complexa assim ;))
No seu exemplo, Cidade, Rota e SR precisam implementar Serializable. Transaction vc implementa nas transacoes, nao nos objetos de negocio (alias, o que quer dizer “SR”?)
SR = Sistema de Rotas. bem criativo não? :lol:
Aliás foi vc cv quem me deu essa idéia de fazer um sistema de rotas, falou que era só estudar um pouquinho de Dijikstra e tal…
Pois bem, eu tentei fazer um sistema para achar todas a rotas só que num grafo não orientado. E parece que isso não existe!
Em teoria dos grafos não tem sentido falar em caminhos, para grafos não orientados…
deu pra entender meu dilema?
Entao, eu sou pééééssimo em teoria de grafos (PAAAAAULOOOO! 8)), mas vc pode tratar um grafo nao-direcionado como um grafo bidirecional, nao? Ou as respostas do Djikstra ficam totalmente sem sentido, se vc fizer isso?
vc pode me explicar melhor isso?
como o cv falou, eu posso simular tornando o grafo bidirecional para todas as arestas, mas se eu não estou enganado, dessa forma eu corro o risco de percorrer o mesmo caminho duas vezes correto?
louds, vc conhece algum algoritmo com arestas não orientadas que retorne todos os caminhos?
Eu falei com uma professora de grafos e ela disse desconhecer tal algoritmo, mas me falou de um tal PBD e PSD que são para achar todos os caminhos num grafo orientado.
Eu chei um no google, mas ele está implementado em python e infelizmente eu ainda não descobri como convertê-lo pra java…
Um caminho não pode repetir nenhuma aresta ou vértice, com a exceção do vértice inicial no caso de um caminho fechado.
Em um grafo existem aproximadamente |E|! (fatorial do número de arestas) caminhos possíveis.
Vc provavelmente quer o all-pair shortest path (google it), que te informa o melhor caminho entre todos pares de vértices. Vale lembrar que ele só funciona em grafos conexos.
Obrigado louds!
eu não tinha a pretensão de encontrar o melhor caminho, mas não deixa de ser uma questão a se pensar
qunto a questão de só funcionar em grafos conexos não tem problema pq meus estudos de casos são todos conexos.
Mas voltando ao Prevayler 2, eu estou lendo o tutorial do prevayler o Presto (que o próprio guj indicou), e ele também não foi escrito para a versão 2 do Prevayler
O cv falou que foi implementado rollback nessa segunda versão(no tópico ‘por que não usar prevayler?’), mas no tutorial do presto o método checkCreateAccount é utilizado porque ele utiliza o Prevayler 1 e o mesmo não tem as funcionalidades do rollback.
Só que pra minha confusão no tópico 3.9 do Presto tem escrito: “A classe RollbackPrevayler é uma implementação da interface Prevayler que oferece rollback.”
Afinal amigos o prevayler implementa o rollback ou não?
porque eu já estava convencido de que ele não era necessário (apesar de que ele facilita as coisas).
como estou com o Prevayler 2, se eu quiser rodar o Presto, eu simplesmente ignoro esse método?
Hmm… se vc quiser mais info atualizadinha sobre o Prevayler, eu tou escrevendo bastante coisa por aqui (alias, sugestoes sao muito bem-vindas!): http://docs.codehaus.org/display/PREVAYLER/Home
[quote=“geofrey”]Afinal amigos o prevayler implementa o rollback ou não?
porque eu já estava convencido de que ele não era necessário (apesar de que ele facilita as coisas).[/quote]
Tem certeza que vc quer depender de rollbacks? Eu ainda acho uma pratica extremamente desaconselhavel, mas, se vc precisa mesmo, o Prevayler 2 tem. Alias, eu preciso escrever sobre isso la na documentacao… :oops:
no Presto tem a seguinte afirmação:
“…as Transações nunca devem guardar referências diretas a objetos de negócio, mas devem saber pesquisar os objetos necessários dadas o sistema.”
alguém pode me explicar melhor isso? pq no exemplo do Presto na classe AccountCreateTransaction tem o código: