que tiene una jerarquía de clases compleja con múltiples niveles de herencia, y tengo que consultar para ciertos tipos específicos dentro de esa jerarquía, utilizando HQL.HQL consulta para múltiples tipos/clases
Digamos que tengo clases gato, perro y mono, con un animal común de la clase base.
¿Cómo escribo una consulta que selecciona solo algunas de esas, por ejemplo, Cat and Dog?
También necesito ordenar o filtrar por ciertas propiedades de Animal, por ejemplo, animales con Sexo = "Hombre" y ordenar por Nombre.
¿Esto es posible?
de acuerdo con la [NH Knol] (http://knol.google.com/k/nhibernate-chapter-12-hql-the-hibernate-query-language) por Fabio Maulo, "la clase de propiedad especial accede al valor discriminador de una instancia en el caso de persistencia polimórfica. Un nombre de clase Java incrustado en la cláusula where ser traducido a su valor discriminador ". - Así que parece que es compatible. Lo probaré mañana por la mañana y publicaré el resultado aquí, ¡gracias! –
¡La propiedad .class mágica funciona muy bien con HQL en NH! Como advertencia, la API de Criteria no es tan útil: necesitaba una solución alternativa, recuperar manualmente el discriminador de la asignación, ya que la API de Criteria no traduce los nombres de clase a valores de discriminador, pero espera que conozca el discriminador. valor por adelantado. Cosas terribles ¡Pero con HQL funciona genial! –