| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 10:37:29
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
Estou iniciando uma aplicação em java+swing.
Onde instancio os objetos do hibernate?
Já chamo no método main?
Sei que tenho que criar um Configuration, obter um SessionFactory, mas não sei em que parte do código fazer isso.
No meu código eu tenho vários GerenciadorXxxx para deletar, salvar, e carregar objetos. Neles irá ficar o código de acesso ao hibernate, mas creio que não é bom criar configuration e sessionfactory a cada vez que eu precisar.
Como isso é feito normalmente?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 10:49:48
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
ronaldorezende wrote:Já chamo no método main?
Nunca! No main só vai o mínimo possível para iniciar a aplicação.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 10:50:20
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
então onde seria?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 11:11:25
|
santanajr
Smalltalk
Membro desde: 13/04/2005 11:05:55
Mensagens: 1
Offline
|
É importante você estudar um pouco mais sobre MVC para que você possa dividir sua aplicação em camadas.
Respondendo sua pergunta, você pode criar uma classe que contenha métodos para controle e manipulação dos dados usando o hibernate. Essa classe pode funcionar como um componente DAO.
http://www.onjava.com/pub/a/onjava/2004/01/14/hibernate.html
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 11:41:21
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Crie uma classe DAO, ela será responsável por isso, além de ser responsável por todas as operações envovendo aplicação <--> Banco de Dados
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 12:15:28
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
E respondendo a outra pergunta: sim, deve criar apenas 1 sessionFactory e compartilhar a mesma para toda a aplicação. Pode fazer isso simplesmente declarando a variável como estática caso a lógica de acesso a dados fique no cliente.
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 14:48:14
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
Minha aplicação já é dividida em MVC. Tenho objetos de negócios como GerenciarCliente, que irão acessar o hibernate para salvar, e carregar objetos.
Quero saber quando eu devo instânciar o sessionFactory e o configuration e onde armazenar os objetos. Onde eu devo criar uma variável estática?
Tem alguma estratégia ou padrão para isso? Devo criar alguma classe que fará esse trabalho de criar o configuration e objeto session?
Nos exemplos que já vi, sempre são aplicações simples que fazem isso tudo no método main da aplicação. No manual do hibernate não diz exemplos de onde fazer isso.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 14:53:55
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Uma idéia é voce carregar o Configuration e o SessionFactory em uma classe DAO e deixar o SessionFactory como static...
esse DAO pode ser carregado quando você abrir seu sistema Swing em cada cliente
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 15:51:52
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
Mas em cada classe DAO eu teria a instanciação do Configuration e do SessionFactory?
Nâo seria melhor eu ter a criação do configuration em apenas 1 local e nesse local eu adicionar todos os mapeamentos das classes que serão persistidas?
Eu terei dezenas de facades no meu programa. Cada façade irá persistir algumas. O facade GerenciadorCliente irá persistir o orçamento do cliente e os itens do orçamento.
Mas, pelo que entendi, o meu GerenciadorCliente, deve usar uma Sessao que já foi criada por um sessionFactory. Seria isso? Então, no sistema teria apenas uma instância do SessionFactory e da configuration.
Então, quando eu criaria esses objetos e onde armazenaria as referências?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 16:06:22
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Você terá apenas uma classe de DAO pai, e nela seu objeto SessionFactory será estático
por exemplo
Os Maps você pode por ae dentro, ou senão no arquivo hibernate.conf.xml, eu particularmente prefiro deixar em arquivo do que na classe...
Agora seus outros DAO, poderiam extender esse dao, por exemplo
O SessionFactory vc terá apenas 1, mas o Session você inicia e fecha ele em cada operação.
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 16:17:15
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
Ok, obrigado. É isso que eu queria saber.
Vou só adaptar o seu exemplo ao meu caso, pois eu não uso DAO. Uso algo que será parecido com seus DAO, que são meus objetos Gerenciadores, como GerenciadorCliente.
Vou criar uma classe para fazer o papel da sua classe DAO e manter uma instância estática da factory.
Quando e por quem o initialization() será executado?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 16:19:02
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Pode ser executado quando sua aplicação Swing for iniciada...
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 16:27:41
|
ronaldorezende
JavaGuru
Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline
|
Quanto a esse arquivo hibernate.conf.xml, eu não sei a respeito dele. Estou lendo o manual do hibernate e uma das formas de mapear foi:
Ainda não vi como usar o arquivo hibernate.conf.xml. Com esse arquivo fica mais fácil? Qual o procedimento para usar ele?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2005 16:37:19
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
desculpe, o certo é hibernate.cgf.xml
vc pode ler mais aqui
http://www.hibernate.org/hib_docs/v3/reference/en/html/session-configuration.html#configuration-xmlconfig
a diferença é que se vc adicionar novas classes, nao precisa adicionar no seu Configuration, e sim nesse arquivo, eu acho melhor e mais flexivel
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
|
|