anchor.diff:  }) 
   ----
   
  -Como siempre, usamos la hotkey Crtl + O para traernos las nuevas importaciones. Y añadimos a la clase de negocio el método siguiente, que es equivalente al _obtenEstadoDronesPorFecha_ pero usando una NamedQuery:
  +Como de costumbre usamos la hotkey Crtl + O para traernos las nuevas importaciones. Y añadimos a la clase de negocio el método siguiente, que es equivalente al _obtenEstadoDronesPorFecha_ pero usando una NamedQuery:
   
   [source,java,indent=0]
   ----
  
positive.code: order by d.numeroDeSerie
  ----
  
  En la primera línea se filtran los atributos o entidades que la consulta devuelve. Al indicar el alias _d_ en _select d_ estamos diciendo que queremos que la consulta sólo devuelva objetos Drone. En Hibernate es posible prescindir de esta parte de la consulta. Si lo hacemos no habrá filtrado de datos y la consulta devolverá todas los objetos que intervienen en la misma, definidos en la parte _from_. Es decir que devolvería una lista de array de objetos `List<Object[]>` donde el primer elemento del array es un objeto Drone y el segundo un objeto Trabajo.
  
  En la segunda línea como se ha comentado se determinan las entidades que intervienen en la consulta. En este caso el conjunto de datos consiste en un inner join entre Drone y Trabajo. El join se hace indicando el campo de la entidad padre que da acceso a las entidades hijas relacionadas _d.trabajosAsignados_.
  
  La tercera línea hace el filtrado de los registros, de manera similar a lo que existe en el SQL de toda la vida. Podemos ver cómo se ha definido el parámetro nombrado _:fecha_ para inyectar el valor dentro de la consulta.
  
  Por último definimos un orden para el conjunto de elementos devueltos. En nuestro caso como lo que devolvemos son "disponibilidades de drones" tiene sentido que el orden lo definamos sobre el campo que identifica al drone, de modo que el usuario lo pueda localizar con facilidad.
  
  Las definiciones de las consultas de una aplicación podemos agruparlas, en general la clase Entity relacionada, de manera que podemos reutilizar la misma consulta en varios puntos y mantener de forma más eficiente la aplicación. Para esto tenemos que convertir nuestra consulta en una NamedQuery. Vamos a ello. En primer lugar abrimos la clase Drone y añadimos la siguiente anotación justo debajo de la anotación _@Entity_:
  
  [source,java,indent=0]
  ----
  
negative.code:   </persistence>
  ----
  
  Lo primero que heremos será crear una conexión a Derby, que será la que use Hibernate Tools para alcanzar la base de datos. Cambiamos a la perspectiva Hibernate seleccionando la opción de menú _Window > Open Perspective > Other..._ y elegimos _Hibernate_:
  
  image::https://raw.githubusercontent.com/lametaweb/lametaweb.github.io/master/images/003/post003-fig071.png[]
  
  