当前位置: 代码迷 >> J2EE >> HQL语句 FROM Department d WHERE d.parent.id=?意义
  详细解决方案

HQL语句 FROM Department d WHERE d.parent.id=?意义

热度:507   发布时间:2016-04-17 23:49:15.0
HQL语句 FROM Department d WHERE d.parent.id=?意思
 FROM Department d WHERE d.parent.id=? 。这段HQL语句的意思,d.parent.id不懂
实体对象;
           private Long id;
private Department parent; // 自己类关系多对一-上级部门,
private Set<Department> children=new HashSet<Department>(); // 自己类关系-下级部门
private String name; // 部门名称
private String description; // 部门描述

实体映射文件:
<!-- 本类Department属性,本类与parent(上级)多对一-->
                     <many-to-one name="parent" class="Department" >
<column name="parentId"></column>
</many-to-one>
<!-- 本类Department属性,本类与children(上级)多对一,cascade级联操作删除-->
<set name="children" cascade="delete">
<key column="parentId"/> <!-- 对象外间 -->
<one-to-many class="Department"/>
</set>
------解决方案--------------------
引用:
Quote: 引用:

d是Department类的别名,d.parent.id代表的就是Department类中parent属性的id属性


引用:
d.parent就是指的是下面的实体中定义的属性
private Department parent; // 自己类关系多对一-上级部门,


引用:
d是Department表的别名,parent是当前查的Department 的父部门。Department 表和对象里有id这个属性。


为什么我查询出来的是当前对象的子部门的值。传进来的的id是表中当前id。

这不是很正常吗,你的id是parent的id值就意味着你的筛选条件是父部门的id为当前的id,那么查询出来的自然是当前id的子部门值
  相关解决方案