imagem aleatória

José Moreira

since 1980

Inside scoop on enterprise java and middleware technologies: Using Hibernate as a Pluggable EJB 3 JPA Provider

May 21, 2007 by José Moreira

Inside scoop on enterprise java and middleware technologies: Using Hibernate as a Pluggable EJB 3 JPA Provider


Using Hibernate as a Pluggable EJB 3 JPA Provider
EJB 3 supports pluggable persistence contract that allows you to plug-in any persistence provider implementing JPA 1.0 with a container that supports JavaEE 5 / EJB 3 spec. It’s provides choice to users to choose their JPA provider of choice. I thought I would give a spin and check whether this plug-ability story really works and here is the result!

Java, Java Server Faces, jpa | Sem comentários »

Integrating AJAX and JPA - Using ICEFaces with EJB 3.0 in JDeveloper

May 19, 2007 by José Moreira

Integrating AJAX and JPA - Using ICEFaces with EJB 3.0 in JDeveloper

Introduction

In this tutorial, We’ll build a Web page that uses the new Java Persistence API (JPA) combined with JSF and the open sourced ICEFaces rich UI components. JPA provides a simple data model and ICEFaces provides Ajax based components for Web user interfaces.
Topics

This tutorial covers the following topics:

  • Overview
  • Prerequisites
  • Installing ICEFaces on JDeveloper
  • Creating a Database Connection
  • Building the Data Model with JPA
  • Creating a Backing Bean for the UI
  • Creating a JSF Page to display an ICEFaces Datatable
  • Running the Application
  • Adding Table Pagination
  • Summary

Java, jpa, programação | Sem comentários »

introdução a persistência de dados e ‘Inversion of Control’ em Java

April 11, 2007 by José Moreira

O objectivo deste artigo é apresentar as capacidades de algumas ferramentas disponíveis em Java ao nível da persistência de classes (objectos) em sistemas de gestão de bases de dados. Por persistência entende-se a gravação do estado de uma estrutura de classes e posterior consulta, actualização e eliminação.

Introdução ao Hibernate

Uma dessas frameworks chama-se Hibernate (existente também para .Net sob o nome Nhibernate). Através da configuração do mapeamento entre as classes e a sua estrutura da base de dados (geralmente através de metadata em XML), é possível indicar ao Hibernate como guardar uma classe numa tabela (ou várias), incluíndo classes relacionadas com a primeira.

O objectivo deste tópico é meramente explicar alguns conceitos por detrás da persistência de dados, não aprofundar a utilização do Hibernate standalone, dado que no contexto do objectivo final do tutorial, ele é apenas um sub-sistema. Tomemos por exemplo as seguintes classes Autor e Livro:

public class Autor {
    private Integer id;
    private String nome;
 
}
public class Livro {
    private Integer id;
    private String titulo;
    private Autor autor;
}

Para a persistência destas classes será criada uma estrutura de base de dados com o seguinte formato:

CREATE TABLE autor (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  nome varchar(70) NOT NULL,
  PRIMARY KEY  (id)
)
CREATE TABLE editora (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  titulo varchar(70) NOT NULL,
  id_autor bigint(20) NOT NULL,
  PRIMARY KEY  (id)
)

A configuração do Hibernate (neste caso o Hibernate 2) para este sistema será:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
   <class name="Autor" table="autor">
       <id name="id" column="id_autor" type="long">
           <generator class="identity"/>
       </id>
       <property name="nome" column="nome" type="string" length="70"/>
   </class>
   <class name="Livro" table="autor">
       <id name="id" column="id_autor" type="int">
           <generator class="identity"/>
       </id>
       <property name="titulo" column="titulo" type="string" length="70"/>
       <one-to-one name="autor" class="Autor"/>
   </class>
 </hibernate-mapping>

A classe Livro contém uma instância Autor (relação 1-1). Aquando da persistência da classe Livro, será gravada a classe Autor na tabela autor, a classe Livro na tabela Livro e a chave estrangeira id_autor na tabela livro será preenchida com o ID gerado para o autor. Ao carregar-se uma instância da classe Livro da base de dados, a sua propriedade autor será automáticamente instanciada com o objecto Autor correspondente (carregado da base de dados também).

Uma dedução lógica é que, dado que os ficheiros de configuração contém a definição da estrutura de classes com que pretendemos trabalhar e a sua relação com a base de dados, eles contém também a definição da estrutura da base de dados, por isso é possível ao Hibernate criar a estrutura de base de dados de raíz, sincronizada com os ficheiros de configuração. Mais ainda. Dado que a metadata é genérica, o Hibernate gerará a estrutura de base de dados no sistema de base de dados configurado, seja MySQL, Postgres, SQL Server, Oracle ou outras disponíveis.

Ler o resto »

Java, SQL, hibernate, jpa, software, spring framework, tecnologia | 2 comentários »