Mensagens enviadas por: flaviomreis
Índice dos Fóruns » Perfil de flaviomreis » Mensagens enviadas por flaviomreis
Autor Mensagem
Desculpe trazer novamente esta discussão, mas é que estou passando por um trabalho enorme, em tentar utilizar hibernate para desenvolver aplicações swing para rede local. Já fui aconselhado pelo mister__m a utilizar genesis ou spring para gerenciamento das sessões, mas sou novato em Java e tá bem difícil, embora eu ainda tenha a intenção de continuar tentando a usá-los (http://www.guj.com.br/posts/list/49613.java.

Mas como vi esta discussão que trata do que eu estava querendo, resolvi experimentá-la, qual não foi minha surpresa ao testá-la e ver que o mesmo problema de minha aplicação se repetia aqui, ou seja, com duas instância da aplicação aberta, o que se persiste em uma, não reflete automaticamente na outra, digamos um cliente, não fica disponível para lançar um pedido até que a instância que não "vê" ele, feche e inicie novamente.

Bom, era só isto, registro na esperança de que alguém tenha utilizá-lo este exemplo e conseguido algum sucesso neste sentido, embora eu já esteja aceitando que vou ter que "sofrer" nas mãos do genesis/spring.

[]'s
Verdade...

Mister... pelo que vejo és um usuário do genesis... Tu não terias como me enviar alguns arquivos de configuração simples do genesis e/ou algum pedaço de código pra eu estudar e adaptar? Ou então alguma referência para estudo... Assim mato de vez meu problema... Valeu mesmo.
heheheh...

Antes de partir pro spring modifiquei um DAO para teste, ou seja, coloquei um closeSession ao final de cada método:


De cara, quando precisei obter a Uf (cliente.getUf()) do indivíduo, através de lazy="true", lançou-se a exceção:


Classe Cliente:


Desculpe eu ser insistente, mas o spring ao comportar-se da mesma forma, isto fechando minha sessão a cada uso, também não ocorrerá as famigeradas LazyInitializatioException?

Obrigado novamente
Falou... Mãos a obra então... bora pesquisar... Brigadão mister__m.

[]'s
Obrigado mister__m... Só pra finalizar então... Se eu utilizar, digamos, springer é certo que eu consiguirei utilizar duas estações, ambas com um programa swing atualizando a base de dados ao mesmo tempo via hibernate e que as atualizações poderão ser percebidas em ambos após uma releitura (select através de HQL)?. Valeu novamente.
Valeu mister__m e xgucax... alterei o método save e update conforme orientam e alterei-os:


Com ambos métodos chamados, a seguinte exceção ocorre ao tentar salvar a mesma instância duas vezes (clicar no botão de salvar duas vezes sem alterar nada, o que faz chamar o método ClienteDAO.update()...


A linha 32 de ClienteDAO.java é uma chamada à session.update(cliente).

Se retiro a chamada ao método closeSession() tudo funciona perfeitamente na aplicação, mas a outra instância da aplicação (digamos aplicação2) continua não "enxergando" as mudança, até que ela seja fechada e executada novamente(a aplicação2).... assim, creio que o problema não seja flush ou closeSession(), pois a sessão de uma aplicação, nada tem a ver com a sessão de outra... e se, como anteriormente, não chamando flush e closeSession(), ao simples reiniciar da aplicação2 fazia com que as mudanças aparececem, creio que seja um problema de cache.

Como rmi é um troço bem mais complicado do que eu via a princípio, já to pensando até em alterar meu DAO para utilizar JDBC ao invés de hibernate... sinceramente não sei o que fazer.

Obrigado gente!
Bah... nada é fácil na vida ehehehe (que bom!)... Bom, existe como eu eliminar totalmente os caches do hibernate? Gostaria detestar isto antes de partir para outra solução, porque pelo que to vendo implementar um servidor de dados com RMI não é tão simples assim. Valeu!
Dei uma olhada superficial no genesis, mas me pareceu um pouco confuso, além de demonstrar-se ser um canhão para meu pequeno problema... Acho que vou partir para obtenção de objetos remotamente, utilizando uma aplicação só para servidor dados às minha aplicações finais.... Bora estudar objetos remotos...
mister__m, desculpe a ignorância, ainda estou lendo a documentação do genesis, mas tu não terias algum exemplo simples de como utilizar o genesis para resolver meu problema do hibernate para que eu possa estudar/adaptar? Obrigado
Olá galera... vamos aos códigos!

Tenho usado esta classe auxiliar para o hibernate:


Tenho o seguinte DAO para clientes:


As linhas session.flush() acrescentei-as a pouco para testar, mas não funcionou... Creio que o hibernate esteja mantendo as instancias já lidas em cache o que faz com que novas leituras (ClienteDAO.list(), por exemplo) não apareçam na outra aplicação aberta. E isto ocorre mesmo se rodar duas instancias de aplicação na mesma máquina.

Já to pensando seriamente em fazer uma camada de acesso remoto como indicou o Guerr@, mas o problema é que sou iniciante em Java e sei que tomarei uma surra tremendar...

Ouço falar de RMI e outras coisas referentes a objetos remotos... Acho que a solução seria algo neste sentido (isto claro se minha solução atual não funcionar mesmo).

Obrigado a todos.
Boa tarde galera!

Estou com um baita problema. Desenvolvo um sistema para gerenciamento de um estúdio fotográfico utilizando swing e hibernate e banco de dados mysql. Tenho a aplicação instalada em dois computadores, o grande problema é que as alterações feitas em um computador não são acessadas pelo outro até que este encerre e inicie novamente a aplicação, ou seja, o sistema de cache do hibernate não "vê" estas alterações feitas em outro computador, o que é lógico, pois seria esperar demais que adivinhasse atualizações. Tentei desabilitar o sistema de caches do hibernate com o seguinte código:



Realmente não sei o que fazer para resolver este problema, se implemento uma comunicação entre as aplicações para que se avisem quando fizerem alterações e dar um flush (ou sei lá o que) no hibernate para ele elimitar os objetos em cache.

Espero que tenha sido claro em meu problema. Agradeço a atenção de todos.
Só pra complementar onde li isto, e no caso, para número de pontos flutuantes é que o resultado é infinito.

http://www.javafree.org/javabb/viewtopic.jbb?t=6951
Realmente sou leigo neste assunto, mas por experiência própria, antes usar Java, precisei em um pequeno projeto, do resultado da divisão de um número real por zero e então a expectativa era de um número enorme, o maior possível o que me fez crer que qualquer número real dividido por zero dê como resultado Infinito e fui feliz, ao me antecipar e considerar como resultado da divisão de um número real por zero algo como 999999999999999, pois tinha necessidade de precisão de 3 dígitos decimais o que pra mim foi perfeito. Até que estes tempos, dando uma olhada sobre a biblioteca matemática do Java e pra minha surpresa, também pra Java, o resultado de um número dividido por zero é Infinito.

[]'s
Ops... Desculpe a demora... Tive que resolver alguns problemas...

É exatamente isto, quero obter todas as imagens em que sua coleção de classificadores tenham uma dada coleção de classificadores.

Valeu!
O meu trecho de código ficou assim:



Mas deu o erro abaixo, creio que ele montou um sql errado, pois está usando somente a tabela classificador.



Obrigado
 
Índice dos Fóruns » Perfil de flaviomreis » Mensagens enviadas por flaviomreis
Ir para:   
Powered by JForum 2.1.8 © JForum Team