java with create - ¿Puede javax.persistence.Query.getResultList () devolver nulo?




3 Answers

Tienes razón. La especificación JPA no dice nada al respecto. Pero el libro de Java Persistence with Hibernate, 2nd edition , dice:

Si el resultado de la consulta está vacío, se devuelve un valor nulo

La implementación de HFP de Hibernate (Entity Manager) devuelve nulo cuando se llama a query.getResultList () sin resultado.

ACTUALIZAR

Como señalaron algunos usuarios, parece que una versión más reciente de Hibernate devuelve una lista vacía.

count native

Y si es así, ¿bajo qué circunstancias?

Las especificaciones Javadoc y JPA no dicen nada.




Contrariamente a la publicación de Arthur, cuando ejecuté una consulta que no coincidía con ninguna entidad, obtuve una lista vacía, no nula. Esto está usando Hibernate y es lo que considero un comportamiento correcto: una lista vacía es la respuesta correcta cuando solicita una colección de entidades y no hay ninguna.




Si observa de cerca el org.hibernate.loader.Loader (4.1) verá que la lista siempre se inicializa dentro del método processResultSet () ( doc , source ).

protected List processResultSet(...) throws SQLException {
   final List results = new ArrayList();

   handleEmptyCollections( queryParameters.getCollectionKeys(), rs, session );
   ...
   return results;

}

Así que no creo que vuelva a ser nulo ahora.




Related