public class Capes {
/**
 * 文件夹ID
 */
private int id;
/**
 * 所属用户
 */
private User user;
/**
 * 文件夹名称
 */
private String name;
/**
 * 创建日期
 */
private Date createTime;
/**
 * 子文件夹
 */
private Set<Capes> subCapes;
/**
 * 用户资源
 */
private Set<Source> subSources;
}表结构CREATE TABLE `capes` (
  `ID` int(11) NOT NULL auto_increment COMMENT '?審?ID',
  `USER_ID` int(11) default NULL COMMENT '強???ID',
  `NAME` varchar(20) NOT NULL COMMENT '?審?柤?',
  `CREATE_TIME` date NOT NULL COMMENT '?寶??',
  `PARENT_CAPES_ID` int(11) default NULL COMMENT '晝?審?ID',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
现在我想通过  PARENT_CAPES_ID` 查找capes下的子capes  应该怎么写啊?

解决方案 »

  1.   

    在capes表的hibernate映射中加下面代码
    <set name="subCapes" lazy="false">
      <key column="id" />
      <one-to-many class="Capes" />
    </set>
      

  2.   


    @Entity
    public class Capes {
    private int id;
    private String name;
    private Date createTime;
    private Set<Capes> subCapes=new HashSet<Capes>();
    private Capes parentCapes;
    @Id
    @GeneratedValue
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public Date getCreateTime() {
    return createTime;
    }
    public void setCreateTime(Date createTime) {
    this.createTime = createTime;
    }
    @OneToMany(cascade={CascadeType.ALL},
    mappedBy="parentCapes")
    public Set<Capes> getSubCapes() {
    return subCapes;
    }
    public void setSubCapes(Set<Capes> subCapes) {
    this.subCapes = subCapes;
    }
    @ManyToOne
    @JoinColumn(name="PARENT_CAPES_ID")
    public Capes getParentCapes() {
    return parentCapes;
    }
    public void setParentCapes(Capes parentCapes) {
    this.parentCapes = parentCapes;
    }

    }
      

  3.   

    上面的添加过了
    用spring怎么写啊?
    我用myeclipse生成的 DAO 里面写的是 capesService.findByParentId()
    可是根本不对啊
      

  4.   

    这个在配置文件里写的,或者用标签的方式告诉hibernate,设置他们的级联然后取的时候带子对象...
      

  5.   

    from capes m,capes n where..