У меня есть следующее сопоставление Hibernate 3 для класса User:
<class name="org.test.User" table="users">
... some other mapping...
<map name="metadata" table="user_metadata">
<cache usage="transactional"/>
<key column="user_id" not-null="true" foreign-key="FK_USERMETADATA_USER_ID"/>
<map-key type="string" column="datum_key" length="255" />
<element type="string" column="datum_value" length="1024" not-null="true"/>
</map>
</class>
Я хотел бы получить список всех значений datum_values с заданным datum_key.
В SQL запрос будет выглядеть так:
select distinct datum_value from user_metadata where datum_key = 'Member Type'
Какой подход был бы наиболее целесообразным? Создать новое сопоставление Hibernate для user_metadata? Или попытаться создать запрос HQL/JPA QL, используя индексы/элементы, возвращающие (возможно, скалярные) значения? До сих пор я немного пробовал подход HQL/JPA QL, и я не зашел слишком далеко.