Witam,
w jaki sposób napisać odpowiednik zapytania sql:
select u.user_id, u.username, g.group_name from users u, user_groups ug,
groups g where u.user_id = ug.user_id and ug.group_id = g.group_id
Wynik:
+---------+----------+------------+
| user_id | username | group_name |
+---------+----------+------------+
| 1 | john | USER |
| 2 | admin | ADMIN |
| 3 | hard | HARDWARE |
| 4 | soft | SOFTWARE |
+---------+----------+------------+
w hql?
Zapytanie:
select u.user_id from Groups g, Users u
Powoduje wyświetlenie każdego user_id * group_name.
Pliki hbm:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.Users" table="users">
<id name="user_id">
<generator class="identity" />
</id>
<property name="username" type="string" />
<property name="first_name" type="string" />
<property name="middle_name" type="string" />
<property name="last_name" type="string" />
<property name="password" type="string" />
<set name="groups" table="user_groups" inverse="false" lazy="true" fetch="select" cascade="all" >
<key>
<column name="USER_ID" not-null="true" />
</key>
<many-to-many entity-name="model.Groups">
<column name="GROUP_ID" not-null="true" />
</many-to-many>
</set>
<!--one to many users -> incydent -->
<set name="incydent" table="incydent" inverse="true" lazy="true" fetch="select">
<key>
<column name="user_id" not-null="true" />
</key>
<one-to-many class="model.Incydent" />
</set>
<!--koniec one to many users -> incydent -->
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="model.Groups" table="groups">
<id name="group_id">
<column name="GROUP_ID" />
<generator class="identity" />
</id>
<property name="group_name" />
<property name="group_desc" />
<set name="users" table="user_groups" inverse="true" lazy="true" fetch="select">
<key>
<column name="GROUP_ID" not-null="true" />
</key>
<many-to-many entity-name="model.Users">
<column name="USER_ID" not-null="true" />
</many-to-many>
</set>
</class>
</hibernate-mapping>
Z góry dziękuję za wszelkie wskazówki ;-)