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 »
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 »
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 »