anchor.diff:  
   * El gestor de base de datos: Usamos una base de datos Derby embebida, lo que nos permite simplificar de momento la capa de datos del proyecto evitando la necesidad de instalar un servidor de base de datos, ya que el gestor de base de datos está contenido en este caso en un archivo jar, junto con el driver. Por otro lado con Derby podemos tener el esquema de la base de datos, es decir donde residen las tablas, en memoria o en el disco duro. Nosotros elegimos esta última opción para tener la posibilidad de explorar los elementos que hibernate generará de forma automática. No he querido usar la base de datos H2, que trae puesta el servidor JBoss EAP, similar a la base de datos Derby, para que veamos también como desplegar recursos en el servidor usando Maven.
   
  -¿Y qué elementos tendremos que añadir a la capa de persistencia? Pues por un lado un fichero de configuración, donde definimos todo lo relevante, y que leerá Hibernate, y por otro las clases del mapeo objeto relacional, que serán tres: Drone, Trabajo y PuntoRuta. Y no hay más. Los que conozcáis EJB 2 estaréis de acuerdo conmigo en que ahora afortunadamente todo es es mucho más simple y limpio.
  +¿Y qué elementos tendremos que añadir a la capa de persistencia? Pues por un lado un fichero de configuración, donde definimos todo lo relevante, y que leerá Hibernate, y por otro las clases del mapeo objeto relacional, que serán tres: Drone, Trabajo y PuntoRuta. Y no hay más. Los que conozcáis EJB 2 estaréis de acuerdo conmigo en que ahora afortunadamente todo es mucho más simple y limpio.
   
   == La configuración
   
  -Vamos primero con la configuración. El fichero de configuración de la unidad de persitencia es _persistence.xml_. La especificación JPA 2 (JSR-338) permite desplegar clases de persistencia fuera de un empaquetado JAR, directamente dentro del WAR de nuestra aplicación. En este caso se indica que el fichero _persistence.xml_ debe situarse en la carpeta _WEB-INF/classes/META-INF/_. Por lo tanto, y con arreglo a la configuración por defecto de Maven para los ficheros de recursos, en nuestro proyecto tendremos que crear el fichero en la carpeta _src\main\resources\META-INF\_. Creamos el fichero con la opción de menú _New > Other... > XML > XML File_.
  +Vamos primero con la configuración. El fichero de configuración de la unidad de persistencia es _persistence.xml_. La especificación JPA 2 (JSR-338) permite desplegar clases de persistencia fuera de un empaquetado JAR, directamente dentro del WAR de nuestra aplicación. En este caso se indica que el fichero _persistence.xml_ debe situarse en la carpeta _WEB-INF/classes/META-INF/_. Por lo tanto, y con arreglo a la configuración por defecto de Maven para los ficheros de recursos, en nuestro proyecto tendremos que crear el fichero en la carpeta _src\main\resources\META-INF\_. Creamos el fichero con la opción de menú _New > Other... > XML > XML File_.
   
   
   .Fichero de configuración de persistencia
  
positive.code: 
  El resto es todo análogo a lo visto con la entidad Trabajo exceptuando los dos detalles que se indican en los comentarios junto a sus atributos. Para el atributo numeroDeSerie, como antes, añadimos la anotación `@Basic(optional = false)` y para el rango numérico en el atributo numMotores usamos la anotación `@Range(min = 4, max = 8)`. Y eso es todo.
  
  Sin embargo como ya hebréis advertido surge un pequeño problema, cuando pulsamos la combinación de teclas Ctrl + Shift + O para traernos los imports nos damos cuenta de que Eclipse no es capaz de localizar el paquete para la anotación @Range. El motivo es que se trata de una anotación especifica del proveedor de persistencia Hibernate, y queda fuera por tanto del estándar JPA. Así que nos toca añadir otra dependencia a nuestro fichero pom.xml.
  
  image::https://raw.githubusercontent.com/lametaweb/lametaweb.github.io/master/images/003/post003-fig055.png[]
  
  
negative.code: 
  En este punto paramos un momento y pensamos si realmente merece la pena crear una entidad PuntoRuta. Esto dependerá sobre todo de si de los requisitos se deduce la necesidad de lanzar consultas sobre la entidad PuntoRuta, por ejemplo para consultar los trabajos programados en una determinada área geográfica. Para nuestro proyecto supondremos que estas consultas sí interesan al cliente. 
  
  Si en cambio tuviéramos el supuesto contrario podríamos plantearnos distintas implementaciones haciendo uso del concepto de embeddable de JPA. Una clase embeddable es persistida al mismo tiempo y en el mismo lugar que su entidad padre. En nuestro caso podríamos añadir una nueva clase Ruta embeddable que contuviera la lista de PuntoRuta, que ya no serie una Entity, y añadir un atributo de tipo Ruta embedded a la entidad Trabajo. En general tendremos siempre varias alternativas a la hora de modelar nuestros diagramas de clases persistentes y tendremos que encontrar la solución más conveniente en cada caso a través de la realización de pruebas y en base a nuestra experiencia.   
  
  Con la implementación de estas tres clases damos por terminada la implementación de la capa de persistencia. En el próximo Post veremos como se despliega el datasource para la capa de persistencia y también un modo de implementar la carga inicial de datos desde la propia aplicación usando la tecnología EJB. Hasta pronto!
  