建了三个表tb_directory(id,name),tb_category(id,directoryId,..),tb_info(id,categoryId,...)并建立一对多关系。
<hibernate-mapping package="com.lyq.persistence">
<class name="Directory" table="tb_directory">
<!-- 主键 -->
<id name="id">
<generator class="native"/>
</id>
<property name="name" length="50"/>
<!-- 一对多关系 -->
<set name="directs" inverse="true" cascade="all" order-by="directoryId">
<key column="directoryId"/>
<one-to-many class="Category"/>
</set>
</class>
</hibernate-mapping>
建立Directory实体的set/get
private int id; //id号
private Set directs; //与主类别级联
<hibernate-mapping package="com.lyq.persistence">
<class name="Category" table="tb_category">
<!-- 主键 -->
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true" length="100"/>
<!-- 与主类别的多对一关系 -->
<many-to-one name="directs" column="directoryId" cascade="save-update"/>
<!-- 与详细信息的一对多关系 -->
<set name="meds" inverse="true" cascade="all" order-by="categoryId">
<key column="categoryId"/>
<one-to-many class="Info"/>
</set>
</class>
</hibernate-mapping>
建立Category实体的set/get
private int id; //id号
private Set meds; //与详细信息关联
private Directory directs;//与主类别级联
<class name="Info" table="tb_info">
<!-- 主键 -->
<id name="id">
<generator class="native"/>
</id>
<property name="title" not-null="true" />
<!-- 与类别的多对一关系 -->
<many-to-one name="cates" column="categoryId" cascade="save-update" lazy="proxy"/>
</class>
</hibernate-mapping>
建立Info实体的set/get
private int id; //id号
private Category cates; //与子类别级联
现在我想查询通过tb_directory表中的id=9这个条件,查询tb_info表相关信息,接下来怎么写代码?谢谢!!
------解决思路----------------------
List infolist=dao.findByHQL("from Info where id=9") 不是这样?
------解决思路----------------------
select from Info i,Directory d,Category c where i.categoryId=c.id and c.directoryId=d.id
好像是这样