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