anchor.diff:  |[small]#;%DERBY_HOME%\bin#
   |===
   
  -Como aún no hemos desplegado la aplicación no tenemos aún nada en la ruta _C:\BD\drones\_. Os indico ahora de todos modos como usar _ij_ para ir cerrando las cuentiones relacionadas con la capa de datos. Podéis volver a este post cuando tengáis la base de datos tras un primer despliegue.
  +Como aún no hemos desplegado la aplicación no tenemos aún nada en la ruta _C:\BD\drones\_. Os indico ahora de todos modos como usar _ij_ para ir cerrando las cuestiones relacionadas con la capa de datos. Podéis volver a este post cuando tengáis la base de datos tras un primer despliegue.
   
   Abrimos una ventana de comando y nos vamos a la carpeta de la base de datos escribiendo `cd C:\BD\drones`. Para invocar el cliente ij simplemente escribimos `ij`, y pulsamos la tecla Enter (&#x21B5;). El cliente mostrará la versión de Derby instalada y a continuación el prompt _ij>_. Para establecer la conexión con la base de datos escribimos el comando:
   
  
positive.code: 
  Al tratarse de un bean EJB podemos inyectar el entity manager directamente en el atributo _em_.
  
  El método de negocio recibe un parámetro de tipo Date, que como veremos en el próximo post formará parte del Modelo de nuestra capa de presentanción MVC (Modelo-Vista-Controlador), y devuelve una lista de objetos Drone ordenada por el número de serie, que actualizará el Modelo con la información a mostrar al usuario. Dentro del método ejecutamos la consulta apoyándonos en el entity manager. Podéis observar como la ejecución de la consulta se implementa en una sola línea usando la característica de encadenamiento de método de la API JPA, que se basa en que un método de un objeto A devuelve ese mismo objeto A, tras ejecutarse.
  
  Al tratarse de una consulta podemos prescindir del comportamiento transaccional, añadiendo una simple anotación al método.
  
  Una consulta puede montarse principalmente de dos maneras, una programática, a través del API Criteria, y otra textual basada en el lenguaje de consulta JPQL de JPA, o HQL de Hibernate. HQL es una extensión de JPQL. Aquí como véis he optado por la segunda alternativa. Las consultas JPQL tienen una estructura similar a las SQL y por tanto no es complicado aprender lo básico. Analicemos nuestra consulta a modo de breve introducción.
  
  [source,jpql,indent=0]
  ----
  
negative.code: 
  == Uso del cliente de línea de comandos ij de Derby 
  
  La herramienta cliente que Derby proporciona se llama _ij_ y se encuentra en la carpeta _\bin\_ del paquete de Derby, que os recuerdo podéis bajar desde http://apache.rediris.es//db/derby/db-derby-10.11.1.1/db-derby-10.11.1.1-bin.zip[este link], y que, si recordáis, cuando montamos el entorno de trabajo descomprimimos en la ruta _C:\TALLER\BD\db-derby-10.11.1.1-bin\_. _ij_ es una herramienta de tipo línea de comando, y que por tanto tenemos que ejecutar desde una ventana de comando en Windows, o en Linux desde un terminal. Para inspeccionar nuestro esquema de datos en la ruta _C:\BD\drones\_ (ver elemento <connection-url> de la configuración del datasource en el fichero pom.xml) que será creado en breve cuando despleguemos nuestra aplicación, tendremos que llamar a _ij_ desde esa carpeta. Para usar _ij_ más cómodamente creamos/editamos estas variables del sistema:
  
  .Variables de sistema para Derby
  [cols="1,1,2"]
  