Hibernate Criteria vs DetachedCriteria

Buenas tardes a todos, alguien de ustedes podría echarme una mano a entender cuál es la diferencia entre criteria y detachedcriteria de hibernate? Se que uno necesita la sesión para hacer sus operaciones y otro no, pero en términos PRÁCTICOS no se dónde utilizar uno y dónde otro :S

Gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

pues así

Ya qué más quieres saber?

Los Criteria normalitos, los tienes que crear a partir de una sesión abierta y ahí es donde los puedes usar, están completamente amarrados a esa sesión.

Los detached criteria no están amarrados a ninguna sesión. Por lo tanto los puedes tener a la mano, independientes de una sesión (los puedes crear y tenerlos en un cache o en un mapa o lo que sea) y usarlos ya con una sesión abierta. Pero luego de usarlos los puedes guardar en memoria y reutilizarlos posteriormente, con una sesión diferente.

Un ejemplo sería que tienes algunas consultas que vas a realizar muy comúnmente, y entonces las construyes como detached criteria para estarlas reutilizando.

Otro ejemplo es que puedas construir un detached criteria a partir de lo que un usuario especifica en una interfaz de búsqueda, y luego abrir una sesión y ejecutar la búsqueda.

Gracias ezamudio

Gracias por su respuesta ezamudio, siempre me ayuda mucho
Un saludo