2017-08-13 15 views
0

mhId = "AAA"(mhIdはテーブルUser_MonHocのカラム、User_MonHocではmhid + user_idがプライマリキー)のIDとユーザ名を取得します。WHERE句でマルチテーブルを選択する方法

表ユーザー:

<hibernate-mapping> 
<class name="entites.User" table="user" catalog="bthibernate" optimistic-lock="version"> 
    <id name="username" type="string"> 
     <column name="username" length="100" /> 
     <generator class="assigned" /> 
    </id> 
    <property name="password" type="string"> 
     <column name="password" length="100" not-null="true" /> 
    </property> 
    <property name="note" type="byte"> 
     <column name="note" not-null="true" /> 
    </property> 
    <property name="name" type="string"> 
     <column name="name" length="100" not-null="true" /> 
    </property> 
    <set name="userMonhocs" table="user_monhoc" inverse="true" lazy="true" fetch="select"> 
     <key> 
      <column name="user_id" length="100" not-null="true" /> 
     </key> 
     <one-to-many class="entites.UserMonhoc" /> 
    </set> 
</class> 

表User_MonHoc

<hibernate-mapping> 
<class name="entites.UserMonhoc" table="user_monhoc" catalog="bthibernate" optimistic-lock="version"> 
    <composite-id name="id" class="entites.UserMonhocId"> 
     <key-property name="userId" type="string"> 
      <column name="user_id" length="100" /> 
     </key-property> 
     <key-property name="mhId" type="string"> 
      <column name="mh_id" length="100" /> 
     </key-property> 
    </composite-id> 
    <many-to-one name="monhoc" class="entites.Monhoc" update="false" insert="false" fetch="select"> 
     <column name="mh_id" length="100" not-null="true" /> 
    </many-to-one> 
    <many-to-one name="user" class="entites.User" update="false" insert="false" fetch="select"> 
     <column name="user_id" length="100" not-null="true" /> 
    </many-to-one> 
    <property name="thoigianDk" type="timestamp"> 
     <column name="thoigian_dk" length="19" not-null="true" /> 
    </property> 
</class> 

私はmhId = "AAA"(mhIdを持っている人、利用者のIDと名前を取得したいです表User_MHの列です)。 ありがとうございました!

答えて

0

UserまたはUser_MHテーブルは、SQLまたはHQLクエリで結合する必要があります。でクエリのOアクセスUser_MHテーブルにUser_MHにエイリアスを設定し、where句:

SQL:

SELECT tbl_user.useranme,tbl_user_mh.user_id FROM User AS tbl_user 
INNER JOIN User_MH AS tbl_user_mh ON tbl_user.id=tbl_user_mh.user_id 
WHERE tbl_user_mh.mhdl = 'AAA 
関連する問題