1 / 16

Hibernate + JBoss

Hibernate + JBoss. Mapeamento O-R em aplicações corporativas. Ricardo Cavalcanti roc3@cin.ufpe.br. Jobson Ronan jrjs@cin.ufpe.br. Hibernate + JBoss. Vantagens Gerenciamento dos detalhes de configurações do Hibernate Gerenciamento de suas Sessões do Hibernate. Hibernate + JBoss.

vera-hanson
Download Presentation

Hibernate + JBoss

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hibernate + JBoss Mapeamento O-R em aplicações corporativas Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br

  2. Hibernate + JBoss • Vantagens • Gerenciamento dos detalhes de configurações do Hibernate • Gerenciamento de suas Sessões do Hibernate

  3. Hibernate + JBoss • Usando o Hibernate no JBoss podemos fazer o deploy de nossa aplicação como um “Hibernate Archive”, .har • Torna o uso do Hibernate ainda mais simples

  4. Hibernate MBean • O Hibernate Archive instancia e configura o Hibernate MBean • Este será responsável por construir o SessionFactorye registra-lo no JNDI • O Hibernate MBean, também permite inspecionar e alterar as configurações do SessionFactoryem tempo de execução

  5. Hibernate MBean • Exemplo <mbean code="org.jboss.hibernate.jmx.Hibernate“ name="jboss.har:service=Hibernate"> <attribute name="DatasourceName">java:/DefaultDS</attribute> <attribute name="Dialect"> net.sf.hibernate.dialect.HSQLDialect </attribute> <attribute name="SessionFactoryName"> java:/hibernate/SessionFactory </attribute> <attribute name="CacheProviderClass"> net.sf.hibernate.cache.HashtableCacheProvider </attribute> </mbean> ...muito semelhante a configuração do hibernate

  6. Hibernate archive • Contém classes e mapeamentos mais um deployment descriptor hibernate-service.xml no diretório META-INF hibernate-service.xml <server> <mbean code="org.jboss.hibernate.jmx.Hibernate“ name="jboss.har:service=Hibernate"> <attribute name="DatasourceName">java:/DefaultDS</attribute> <!-- .... --> </mbean> </server>

  7. Hibernate archive • Estrutura típica

  8. Usando objetos Hibernate • Quando é feito o deploy do hibernate archive, os objetos do Hibernate ficam disponíveis a outras aplicações através do SessionFactory • Uma vez este estando registrado no JNDI, pode se fazer um simples lookup e manualmente criar uma Hibernate Session InitialContext ctx = new InitialContext(); SessionFactory factory = (SessionFactory) ctx.lookup("java:/hibernate/SessionFactory"); Session hsession = factory.openSession();

  9. Usando objetos Hibernate • Esta forma de acesso requer gerenciamento manual das sessões e transações do hibernate • Pode ser útil para migrar código já existente para o JBoss • Porém, no contexto de grandes aplicações J2EE, seria interessante que os objetos do hibernate fizessem parte de uma transaçao JTA existente

  10. Usando objetos Hibernate • Situação comum no caso de querer acessar objetos do hibernate em um Session Bean • O JBoss possui a classe HibernateContext(pkg: org.jboss.hibernate.session) para facilitar esta integração • Método getSession retorna a Session do hibernate ligada a transação JTA corrente Session hsession = HibernateContext.getSession( "java:/hibernate/CaveatEmptorSessionFactory");

  11. Usando objetos Hibernate • Desta forma não é necessário fechar as sessões, tampouco gerenciar as transações • Garante um gerenciamento de transações de forma declarativa

  12. Usando objetos Hibernate • Cuidado com suas lazy collections • Uma vez se seus objetos são serializado e enviados até um cliente, lazy collections passam a não funcionar.

  13. HAR dentro do EAR • Arquivos HAR podem ser usados como componentes de um arquivo EAR durante o deploy • Porém, como arquivo HAR não é um tipo padrão J2EE este precisa ser declarado no arquivo jboss-app.xml <!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd"> <jboss-app> <module> <har>caveatemptor.har</har> </module> </jboss-app>

  14. Mini-projeto • Implementar o seguinte modelo no hibernate

  15. Mini-projeto • Implementar um Stateless Session Bean no padrão SessionFacade com as seguintes funcionalidades

  16. Referências • The JBoss 4 Application Server Guide, release 2

More Related