Моделирование дерева с помощью конфигурационных файлов hibernate xml - PullRequest
2 голосов
/ 14 марта 2012

У меня есть класс под названием "Площадь".Каждая область может иметь несколько подобластей (одного и того же типа).

Мне нужно определить подзоны и корневые области.Подзоны могут иметь подзоны сами.

Это может быть несколько уровней.

Пример:

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
}

Как мне моделировать такой Java-класс с помощью XML-файлов конфигурации Hibernate?

и ...

Как загрузить в память дерево областей?

спасибо

1 Ответ

1 голос
/ 15 марта 2012
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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...