2013-08-03 2 views
0

Ниже приводится SQL-запрос, который будет получать результаты, которые представляют собой сочетание многого внутренней joins..and соответствующий POJOs являетсясоветуют HQL для ниже SQL

Table    JAVA POJO 
    rtyuUSER   User 
    rtyu_GROUP   rtyu 

user.java содержит следующие свойства

UpdatedBy updatebby updateddate

rtyu_GROUP.java содержат следующие свойства

id;

code; 

имя;

Запрос, который извлекает запись .. SELECT DISTINCT u.name, u.updated_by, u.updateddate ОТ rtyuUSER и, rtyuuser_rtyu мкг, rtyurtyu GWhere u.id = ug.user_id и ug.rtyu_id = g.id и u.ACTIVE_FLAG = «Y» и g.id не в (10,11) упорядочить по u.name

и отношения между таблицами определяется в качестве НВМ,

<class name="User" table="rtyu_USER" dynamic-update="true" select-before-update="true"> 
<property name="name" type="string" /> 
<property name="updated" type="timestamp" column="UPDATEDDATE" /> 
     <property name="updatedBy" column="UPDATED_BY" type="string"/> 
     <property name="active" type="yes_no" column="FLAG" /> 
     <set name="groups" table="rtyu_USER_GROUP" lazy="true" inverse="false" sort="natural"> 
      <key column="USER_ID" /> 
      <many-to-many column="GROUP_ID" class="Group" /> 
     </set> 


     and the nother class tag is defined as.. 

     <class name="Group" table="rtyu_GROUP" mutable="false"> 
     <id name="id" unsaved-value="0" type="long" access="property" /> 
     <property name="code" type="string" /> 
     <property name="name" type="string" /> 
     <set name="permissions" table="rtyu_GROUP_PERMISSION" inverse="true" lazy="false" sort="natural"> 
      <key column="GROUP_ID" /> 
      <many-to-many column="PERMISSION_ID" class="Permission" /> 
     </set> 
    </class> 



Now could you please advise how to write HQL for this for this..folks please advise for this 
+0

Какая у вас конечная цель? Активные пользователи не входят в группы 10 и 11? – Rafa

ответ

0

Если я понял Правильно, это будет примерно так:

SELECT DISTINCT FROM 
User u 
INNER JOIN u.groups as g 
WHERE u.active='Y' AND g.id NOT IN (10,11) 
ORDER BY u.name 
+0

, но как наблюдать в базе данных, есть три таблицы, которые связаны друг с другом, но в hql есть два отношения, которые вы видели, как вы можете видеть в теге первого класса, есть набор –

+0

, который вы правы. Какая связь между User и rtyu? Где он определен в вашем hbm? – Rafa

+0

см. Первый тег класса, который содержит множество, так что это таблица промежуточных данных, и что waht я застрял –

Смежные вопросы