使用HibernateXML配置文件进行树建模

使用HibernateXML配置文件进行树建模,hibernate,tree,Hibernate,Tree,我有一门课叫“区域”。每个区域可以有多个子区域(相同类型) 我需要能够确定子区域和根区域。子区域本身可以有子区域 这可能有相当多的层次 例如: Rootarea |- Subarea 1 | |- Subarea 2 | | | |- Subarea 3 | |- Subarea 4 | |- Subarea 5 public class Area { private long id; private Area parent; private

我有一门课叫“区域”。每个区域可以有多个子区域(相同类型)

我需要能够确定子区域和根区域。子区域本身可以有子区域

这可能有相当多的层次

例如:

Rootarea  
|- Subarea 1  
|   |- Subarea 2  
|   |
|   |- Subarea 3
|
|- Subarea 4
|   |- Subarea 5

public class Area {

   private long id;

   private Area parent; 
   private List<Area> children;

   private String name;

   //getters and setters here ommitted
}
根区域
|-分区1
||-分区2
|   |
||-分区3
|
|-分区4
||-分区5
公共课区{
私人长id;
私人区域家长;
私人名单儿童;
私有字符串名称;
//这里的接球手和二传手都很出色
}
如何使用HibernateXML配置文件对这样的Java类建模

而且

如何加载到内存区域树

谢谢

课程区
{
公共布尔值isRootArea()
{
返回getParent()==null;
}
}
var rootareas=session.createCriteria(Area.class).add(Restriction.IsNull(“父”)).setFetchMode(“子项”,FetchMode.eager).list();

您计划如何将其存储在数据库中?都在同一张桌子上?
class Area
{
    public Boolean isRootArea()
    {
        return getParent() == null;
    }
}


  <class name="Area" table="`AREA`">
    <id name="Id">
      <generator class="..." />
    </id>

    <bag name="children" cascade="all-delete-orphan">
      <key column="parent_id" />
      <one-to-many class="Area" />
    </bag>
    <many-to-one class="Area" name="parent">
      <column name="parent_id" />
    </many-to-one>
  </class>


var rootareas = session.createCriteria(Area.class).add(Restriction.IsNull("parent")).setFetchMode("children", FetchMode.eager).list();