Diego,
La misma pero dada vuelta (arrancando de AttributeUser) y usando OR... que
tonto que soy... intento escribirla aqui
select distinct u
from AttributeUser au
join au.User u
join au.Attribute a
where
(a.Name = "Sexo" and au.Value = "F") or
(a.Name = "Edad" and au.Value between 15 and 25)

Igual el sistema ese me suena a bergamotta...
Yo usería un dynamic-component e implementaría la DynamicEntity para manejar
todo con clases de .NET4.

2011/2/28 Diego Mijelshon <[email protected]>

> Esta es una forma posible:
>
>   select distinct u  from User u,  AttributeUser a1,  AttributeUser a2  where 
> u = a1.User and a1.Attribute.Name = 'Sexo' and a1.Value = 'F'  and   u = 
> a2.User and a2.Attribute.Name = 'Edad' and a2.Value between '15' and '25'
>
>
>     Diego
>
>
> 2011/2/28 Gustavo Garcia <[email protected]>
>
> Estimados, muchas gracias por las muy rápidas respuestas!
>> A continuación le respondo a cada uno:
>>
>> rodmarquez21: Lo intentaré ahora mismo y te cuento!
>> Fabio: Quizás no sea HQL, pero intento hacer que si sea :)
>> Diego: Primero explicaré la situación y luego te muestro las clases
>>
>> Tengo la clase User (asociada a tabla "User"). Un user puede tener varias
>> caracteristicas (Edad, Sexo, Region, Estado civil, etc),
>> entonces tengo una clase "Attribute", básicamente con un nombre ("sexo",
>> "edad", "region", etc) y una clase AttributeUser, con un User, Attribute y
>> un valor,
>> para decir "el usuario U, tiene el Atributo A, con valor V" (ej: Juan es
>> de sexo masculino).
>>
>> Estos atributos son muchos e irán aumentando en el tiempo, es por esto que
>> no le puedo agregar simplemente las propiedades "Edad, Sexo, Region, etc" a
>> la
>> clase "User" (se llenará de NULLs la BD y tendría que estar modificando la
>> aplicación cada vez que queramos incluir un nuevo atributo.
>>
>> Ahora, necesito obtener los conjuntos de usuarios que cumplen con ciertas
>> características, por ejemplo "todos los usuarios hombre O mujer, con edad
>> entre 15 y 25"
>>
>> Las clases son estas:
>>
>>
>>
>> public class User
>>     {
>>         public virtual int Id { get; private set; }
>>         public virtual string Username { get; set; }
>>         public virtual string FirstName { get; set; }
>>         public virtual string LastName { get; set; }
>>     }
>> public class Attribute
>>     {
>>         public virtual int Id { get; private set; }
>>         public virtual string Name { get; set; }
>>     }
>> public class AttributeUser
>>     {
>>         public virtual int Id { get; private set; }
>>         public virtual User User { get; set; }
>>         public virtual Attribute Attribute { get; set; }
>>         public virtual string Value { get; set; }
>>     }
>>
>>
>> Bueno, eso es todo. Espero no estar tan mal orientado.
>> Gracias de antemano!
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>
>  --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>



-- 
Fabio Maulo

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a