Hibernate HQL从子级获取父级,子级不知道父级
我有以下问题:我想通过HQL从一个子系统中检索父系统 Parent.hbm.xmlHibernate HQL从子级获取父级,子级不知道父级,hibernate,hql,parent,Hibernate,Hql,Parent,我有以下问题:我想通过HQL从一个子系统中检索父系统 Parent.hbm.xml <hibernate-mapping> <class name="Parent" table="Parent"> <id name="uuid" type="java.lang.String" unsaved-value="null" access="field"> <column name="uuid" not-null="true" />
<hibernate-mapping>
<class name="Parent" table="Parent">
<id name="uuid" type="java.lang.String" unsaved-value="null" access="field">
<column name="uuid" not-null="true" />
<generator class="org.hibernate.id.UUIDGenerator" />
</id>
<list name="events" table="ParentToChild" cascade="all-delete-orphan" lazy="false">
<key column="parentUuid" />
<index column="idx" />
<one-to-many class="Child" />
</list>
</class>
<query name="findParentByChild">
<![CDATA[
select p from Parent as p, Child as c where c.uuid = :uuid and p.uuid = c.parentUuid
]]>
</query>
</hibernate-mapping>
<hibernate-mapping>
<class name="Child" table="Child">
<id name="uuid" type="java.lang.String" access="field">
<column name="uuid" not-null="true" />
<generator class="org.hibernate.id.UUIDGenerator" />
</id>
<other properties..>
</class>
</hibernate-mapping
Child.hbm.xml
<hibernate-mapping>
<class name="Parent" table="Parent">
<id name="uuid" type="java.lang.String" unsaved-value="null" access="field">
<column name="uuid" not-null="true" />
<generator class="org.hibernate.id.UUIDGenerator" />
</id>
<list name="events" table="ParentToChild" cascade="all-delete-orphan" lazy="false">
<key column="parentUuid" />
<index column="idx" />
<one-to-many class="Child" />
</list>
</class>
<query name="findParentByChild">
<![CDATA[
select p from Parent as p, Child as c where c.uuid = :uuid and p.uuid = c.parentUuid
]]>
</query>
</hibernate-mapping>
<hibernate-mapping>
<class name="Child" table="Child">
<id name="uuid" type="java.lang.String" access="field">
<column name="uuid" not-null="true" />
<generator class="org.hibernate.id.UUIDGenerator" />
</id>
<other properties..>
</class>
</hibernate-mapping
您可以使用“加入”:
select p Parent from Parent p join p.events c where c.uuid = :uuid