JPA - Componentes ORM


Anuncios


La mayor铆a de las aplicaciones que utilizan bases de datos relacionales para almacenar datos. Recientemente, muchos proveedores de base de datos de objeto de reducir su carga de mantenimiento de datos. Esto significa Object Relational Mapping de base de datos o las tecnolog铆as est谩n al cuidado de almacenar, recuperar, actualizar y mantener los datos. La parte principal de este objeto es tecnolog铆a relacional orm mapeo.xml files. Como xml no necesitan compilaci贸n, podemos realizar cambios f谩cilmente a varias fuentes de datos con menos administraci贸n.

Object Relational Mapping

Object Relational Mapping (ORM) informa brevemente sobre lo que es ORM y c贸mo funciona. ORM es una capacidad de programaci贸n para convertir los datos de tipo de objeto de tipo relacional y viceversa.

La principal caracter铆stica de ORM es de cartograf铆a o enlazar un objeto a sus datos en la base de datos. Si bien la cartograf铆a, tenemos que tener en cuenta los datos, el tipo de datos, y sus relaciones con la entidad o entidades en cualquier otra tabla.

Funciones avanzadas

  • Persistencia idiom谩ticas: le permite escribir la persistencia clases utilizando las clases orientadas a objetos.

  • Alto rendimiento : tiene muchos buscar t茅cnicas t茅cnicas de bloqueo y esperanzador.

  • Fiable: es muy estable y utilizado por muchos programadores profesionales.

Arquitectura ORM

El ORM arquitectura es similar al siguiente.

Object Relational Mapping

La arquitectura se explica c贸mo datos del objeto se almacenan en bases de datos relacionales en tres fases.

Fase1

La primera fase, denominada fase de datos del objeto, contiene las clases POJO, interfaces y clases. Es el principal componente de empresa de capa, que tiene l贸gica de negocios operaciones y atributos.

Por ejemplo, vamos a tener una base de datos de empleados como esquema.

  • POJO empleado clase contiene atributos como ID, nombre, salario, y designaci贸n. Tambi茅n contiene m茅todos setter y getter de esos atributos.

  • Empleado DAO/clases de servicio contienen m茅todos de servicio tales como crear empleado, encontrar los empleados y eliminar empleado.

Fase 2

La segunda fase, denominada fase de mapeo o persistencia JPA proveedor, contiene, archivo de mapas (ORM.xml), JPA Cargadora y rejilla de objeto.

  • JPA Provider : es el producto de proveedor que contiene el JPA sabor (javax.persistence). Por ejemplo Eclipselink, Toplink, hibernaci贸n, etc.

  • Archivo de asignaci贸n : El archivo de asignaci贸n (ORM.xml) contiene configuraci贸n de la asignaci贸n entre los datos de un POJO clase y los datos en una base de datos relacional.

  • JPA Cargador cargador : La APP funciona como una memoria cach茅. Puede cargar los datos relacionales. Funciona como una copia de base de datos para interactuar con las clases de servicio de datos POJO POJO (atributos de clase).

  • Rejilla de Objeto : es una ubicaci贸n temporal que puede almacenar una copia de los datos relacionales, como una memoria cach茅. Todas las consultas en la base de datos se efectuar谩, primero en los datos del objeto grid. S贸lo despu茅s de que se ha comprometido, que afecta a la base de datos principal.

Fase 3

La tercera fase es la fase de datos relacionales. Contiene los datos relacionales que l贸gicamente est谩 conectado al componente comercial. Como se ha indicado anteriormente, s贸lo cuando el componente comercial se compromete los datos, que se almacenan en la base de datos f铆sicamente. Hasta entonces, los datos modificados se almacenan en una memoria cach茅 como un formato de cuadr铆cula. El proceso de obtenci贸n de los datos es id茅ntica a la de almacenar los datos.

El mecanismo de la interacci贸n mediante programaci贸n por encima de tres fases se denomina asignaci贸n objeto-relacional.

Mapping.xml

La asignaci贸n de archivo.xml es el de instruir a la JPA proveedor mapa las clases de entidad con las tablas de la base de datos.

Tomemos un ejemplo del Empleado entidad que contiene cuatro atributos. El POJO entidad clase de empleados Employee.java es la siguiente:

public class Employee 
{
   private int eid;
   private String ename;
   private double salary;
   private String deg;
   public Employee(int eid, String ename, double salary, String deg) 
   {
      super( );
      this.eid = eid;
      this.ename = ename;
      this.salary = salary;
      this.deg = deg;
   }

   public Employee( ) 
   {
      super();
   }

   public int getEid( ) 
   {
      return eid;
   }
   public void setEid(int eid)  
   {
      this.eid = eid;
   }
   public String getEname( ) 
   {
      return ename;
   }
   public void setEname(String ename) 
   {
      this.ename = ename;
   }

   public double getSalary( ) 
   {
      return salary;
   }
   public void setSalary(double salary) 
   {
      this.salary = salary;
   }

   public String getDeg( ) 
   {
      return deg;
   }
   public void setDeg(String deg) 
   {
      this.deg = deg;
   }
}

El c贸digo anterior es la entidad Employee clase POJO. Contiene cuatro atributos b>eid, ename, salary, and deg. Considerar estos atributos como los campos de tabla en una tabla y eid como clave principal de la tabla. Ahora tenemos que tener en cuenta en el dise帽o del archivo de asignaci贸n para hibernar. Nombre del archivo de mapas mapping.xml es el siguiente:

<? xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm    
                        http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
                        version="1.0">
    <description> XML Mapping file</description>
    <entity class="Employee">        
        <table name="EMPLOYEETABLE"/>
        <attributes>
            <id name="eid">
                <generated-value strategy="TABLE"/>
            </id>
            <basic name="ename">
                <column name="EMP_NAME" length="100"/>
            </basic>
            <basic name="salary">
            </basic>
            <basic name="deg">
            </basic>
        </attributes>
    </entity>
</entity-mappings>

La secuencia de comandos anterior se utiliza para la cartograf铆a de la clase de entidad con la tabla de la base de datos. En este archivo

  • <entity-mappings> etiqueta define la definici贸n de esquema para permitir etiquetas de entidad en archivo xml.

  • <description> : etiqueta ofrece una descripci贸n acerca de la aplicaci贸n.

  • <entity> : etiqueta define la clase de entidad que desea convertir en una tabla en una base de datos. Clase de atributo POJO define el nombre de la clase de entidad.

  • <table> : etiqueta define el nombre de la tabla. Si desea tener nombres id茅nticos tanto para la clase, as铆 como la tabla y, a continuaci贸n, esta etiqueta no es necesario.

  • <attributes> : etiqueta define los atributos (campos de una tabla).

  • <id> : etiqueta define la clave principal de la tabla. El <genera valor de etiqueta> define c贸mo asignar el valor de la clave principal como autom谩tica, manual o de secuencia.

  • <basic> : etiqueta se utiliza para definir los atributos de la tabla.

  • <column-name> : etiqueta se usa para definir tabla definidas por el usuario nombres de campo en la tabla.

Las anotaciones

Por lo general se utilizan archivos xml para configurar los componentes espec铆ficos, o asignaci贸n de dos diferentes especificaciones de los componentes. En nuestro caso, tenemos que mantener archivos xml por separado en un marco. Eso significa que al escribir un archivo de asignaci贸n xml, necesitamos comparar los atributos de clase POJO con las etiquetas de la entidad en el archivo mapping.xml.

Aqu铆 est谩 la soluci贸n. En la definici贸n de la clase, podemos escribir la configuraci贸n con anotaciones. Las anotaciones se utilizan para las clases, propiedades y m茅todos. Las anotaciones comienzan con " @" el s铆mbolo. Las anotaciones son declarados antes de una clase, propiedad o m茅todo. Todas las anotaciones de JPA se definen en el<javax.persistence paquete

Aqu铆 lista de anotaciones utilizadas en nuestros ejemplos se dan a continuaci贸n.

Anotaci贸n Descripci贸n
@Entidad Declara la clase como una entidad o una tabla.
@Tabla Declara nombre de la tabla.
@Basic Especifica no campos de restricci贸n expl铆cita.
@Embedded Especifica las propiedades de la clase o de una entidad cuyo valor es una instancia de una clase se puede incrustar.
@Id Especifica la propiedad, el uso de la identidad (la clave principal de una tabla de la clase.
@GeneratedValue Especifica el modo en que la identidad se puede inicializar atributo como autom谩tica, manual o valor tomado de la tabla de secuencias.
@Transitorios Especifica la propiedad que no es constante, es decir, el valor nunca se almacena en la base de datos.
@Columna Especifica el atributo de columna para la propiedad persistence.
@SequenceGenerator Especifica el valor de la propiedad que se especifica en la anotaci贸n @GeneratedValue. Crea una secuencia.
@TableGenerator Especifica el generador de valor para la propiedad especificada en la anotaci贸n @GeneratedValue. Crea una tabla de generaci贸n de valor.
@AccessType Este tipo de anotaci贸n se utiliza para establecer el tipo de acceso. Si establece el valor de @m茅todos Accesstype() y formattype() CAMPO), luego se produce acceso Campo sabio. Si establece el valor de @m茅todos Accesstype() y formattype() PROPIEDAD), a continuaci贸n, el acceso se produce bienes.
@JoinColumn Especifica la entidad asociaci贸n o entidad colecci贸n. Esto se utiliza en muchos-a-uno y uno-a-muchas asociaciones.
@UniqueConstraint Especifica los campos y las restricciones unique para la primaria o la secundaria.
@ColumnResult Hace referencia al nombre de una columna de la consulta SQL que utiliza cl谩usula select.
@ManyToMany Define una relaci贸n many-to-many entre el unir tablas.
@ManyToOne Define una relaci贸n de many-to-one entre el unir tablas.
@OneToMany Define una relaci贸n one-to-many entre los unir tablas.
@OneToOne Define una relaci贸n one-to-one entre los unir tablas.
@NamedQueries Especifica la lista de consultas con nombre.
@NamedQuery Especifica una consulta con nombre est谩tico.

Est谩ndar Java Bean.

La clase Java encapsula los valores de instancia y sus comportamientos en una sola unidad llamada objeto. Java Bean es un almacenamiento temporal y componentes reutilizables o de un objeto. Se trata de una clase serializable que tiene un constructor predeterminado y m茅todos get y set para inicializar los atributos de la instancia individual.

Bean Convenios

  • Frijol contiene su constructor predeterminado o un archivo que contiene serializa la instancia. Por lo tanto, un frijol puede crear una instancia de otro grano.

  • Las propiedades de un frijol pueden ser segregadas en propiedades booleanas o no booleano.

  • Propiedad booleanos no contiene getter y setter m茅todos.

  • Propiedad booleana contienen setter y es m茅todo.

  • Getterm茅todo de cualquier propiedad debe comenzar con peque帽as Letras get (java method convention) y continu贸 con un nombre de campo que comienza con may煤scula. Por ejemplo, el nombre del campo es salario por tanto el m茅todo getter de este campo es getSalary ().

  • Setter m茅todo de cualquier propiedad debe comenzar con peque帽as Letras set (java method convention), continu贸 con un nombre de campo que comienza con letra may煤scula y el argument value para establecer en campo. Por ejemplo, el nombre del campo es salario por tanto el m茅todo setter de este campo es setSalary ( double sal ).

  • Para propiedad booleana, is m茅todo para comprobar si es verdadero o falso. Por ejemplo la propiedad booleana vac铆o, el es m茅todo de este campo es isEmpty ().



Advertisements