Orm jpa

Disponível somente no TrabalhosFeitos
  • Páginas : 7 (1700 palavras )
  • Download(s) : 0
  • Publicado : 8 de abril de 2011
Ler documento completo
Amostra do texto
JPA - Java Persistense API
ORM e JPA
ORM - O que é mapeamento objeto/relacional? Como funciona? Quais os
principais ORM do mercado?

O que é?
Object-relacional mapping – Mapeamento objeto relacional é uma técnica de desenvolvimento que consiste em mapear as classes e transformá-las em tabelas no banco de dados. Ou seja, as tabelas do banco de dados são representadas através de classes e osregistros de cada tabela são representados como instâncias das classes correspondentes. Dessa forma o programador não precisa se preocupar com os comandos em linguagem SQL, ou seja, ele irá usar uma interface de programação simples que faz todo o trabalho de persistência.
Como funciona?
Utiliza-se uma abstração bastante intuitiva no sentido de que uma classe do tipo persistente pode ser mapeadapara uma tabela no banco de dados relacional e atributos da classe para campos da tabela. Porém, algumas diferenças entre os dois modelos, como OID (Object Identifiers – Identificador de Objetos), tipos de dados, herança e associações, demandam um estudo mais detalhado das estratégias de mapeamento.

Identificação de chave primária

As linhas das tabelas precisam ter identidade exclusiva.Elas são identificadas com exclusividade pelos valores de suas chaves primárias e conseqüentemente, nunca devem ser alteradas. Os nomes em texto sem formatação não são adequados, pois, geralmente, representam um overhead operacional para o recurso relacional persistente, além do que os nomes não são exclusivos. Como as comparações numéricas consomem menos recursos computacionais, as chaves primáriasdevem ser numéricas e, preferencialmente, não devem refletir domínio de negócio, para que não sejam alteradas.

OIDs (Objects Identifiers)

Os OIDs são identificadores únicos que representam um objeto, em linguagens de programação, existentes, este objeto é implícito e criado quando ocorre a criação de um novo objeto, já em um banco de dados relacional cabe ao desenvolvedor a responsabilidadedesta criação. Quando ocorre o mapeamento, recomenda-se armazenar no banco de dados relacional o identificador do objeto como chave primária, ou qualquer outro atributo do objeto que possa identificá-lo como único, exemplo o CPF.

Existem várias estratégias para atribuir OIDs para objetos, inclusive pode-se criar uma ou mais classes cuja responsabilidade específica é a de atribuir OIDs paraobjetos, sendo estas estratégias separadas das classes que implementam as regras de negócio. É considerada uma boa prática de desenvolvimento separar a estratégia de atribuição de OIDs das classes de negócio, evitando utilizar um atributo qualquer da classe para ser o identificador. Identificadores que possuem um significado de negócio, certamente mudam em algum momento, pois as regras de negóciomudam freqüentemente, e o esforço necessário para realizar esta modificação pode ser imensurável.

Mapeamento de Classes em Tabelas

O mapeamento de classes pode ser feito mediante a paridade entre classe e tabela, ou seja, uma classe é mapeada para uma tabela. Este mapeamento direto de classes para tabelas representa a forma mais simples de mapeamento, tornando mais fácil o entendimento e amanutenção de uma aplicação. Com um modelo de classes bastante simples isto poderia ser feito. Porém, nem sempre é simples assim. No caso de uma estrutura hierárquica, várias classes podem ser mapeadas para uma tabela, como também uma classe pode ser mapeada para várias tabelas. Ainda, classes com atributos multivalorados ou compostos podem ser mapeadas para mais de uma tabela.

Mapeamento deAtributos em Colunas

Ao tratar do mapeamento de atributos de uma classe para colunas em tabelas de um banco de dados relacional, deve-se levar em conta que os atributos podem ser de tipos de dados simples ou primários como: inteiros, ponto flutuante, caracteres, booleanos e binários, mas também podem ser de tipos de dados complexos como tipos baseados em outras classes. Os atributos podem ser ainda...
tracking img