Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate mapping master-detail отношения и XDoclet - прошу помощи / 6 сообщений из 6, страница 1 из 1
27.04.2005, 11:37
    #33037739
Лембит Альвелаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
Понимаю что, вобщем-то, RTFM, но тем не менее, прошу помощи - сам несколько запарен и просто не успеваю во всё врубиться/переварить.

Суть вопроса - есть master-detail отношение и соответствующие java-классы (POJO), проблема в том как правильно отразить это отношение в hibernate-mapping.xml.

Или даже (тк вышеупомянутый маппинг генерится xdoclet-ом), какие xdoclet tags куда расставить. Что ставить со стороны master, а что со стороны detail ?
Меняется ли что-либо если DetаilPOJO также выступает в как master в другом master-detail отношении, т.е если у него тоже есть private List subdetails; ?

Например -

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
/**
* @hibernate.class table="master"
*/
 public   class  MasterPOJO {
   private   Long  id;
   private  String name;
   private  List details; // list of DetailPOJOs
  ....
  /**
  * вот что мне писать сюда ?
  */
   public  List getDetailList() {
     return   this .details;
  }

  /**
  * вот что мне писать сюда ?
  */ 
   public  DetailPOJO getNextDetail() {
      return  (DetailPOJO) this .details.getNextItem();
  }

  /**
  * и сюда ?
  */ 
   public   void  addDetail(DetailPOJO detail) {
      this .details.add(detail);
  }
}


/**
* @hibernate.class table="detail"
*/
 public   class  DetailPOJO {
   private   Long  id;
   private  String name;

  /**
  * надо ли что-то сюда ?
  */ 

}

P.S Извините за обилие букв :)
...
Рейтинг: 0 / 0
27.04.2005, 11:43
    #33037757
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
Лембит Альвелаев...
P.S Извините за обилие букв :)
Можно попросить код оформлять с помощью тегов SRC?
...
Рейтинг: 0 / 0
27.04.2005, 12:04
    #33037816
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
/**
* @hibernate.class table="master"
*/
 public   class  MasterPOJO {
   private   Long  id;
   private  String name;
   private  List details; // list of DetailPOJOs
  ....
    /**
     * @hibernate.list
     *  table="detail"
     *  lazy="true"
     *  cascade="all"
     * @hibernate.collection-key
     *  column="master_id" // название поля
     * @hibernate.collection-one-to-many
     *   class="DetailPOJO"
     */
   public  List getDetailList() {
     return   this .details;
  }

  /**
  * сюда вроде ничего
  */ 
   public  DetailPOJO getNextDetail() {
      return  (DetailPOJO) this .details.getNextItem();
  }

  /**
  * и сюда ничего
  */ 
   public   void  addDetail(DetailPOJO detail) {
      this .details.add(detail);
  }
}


/**
* @hibernate.class table="detail"
*/
 public   class  DetailPOJO {
   private   Long  id;
   private  String name;

//если двунаправленная связь то нужно
   private  MasterPOJO masterPOJO;
    /**
     * @hibernate.many-to-one
     *   class="MasterPOJO"
     *   column="master_id"
     *   cascade="all"
     *   outer-join="true"
     *   not-null="true"
     */
     public  MasterPOJO getMaster() {
         return  masterPOJO;
    }
     public   void  setMaster(MasterPOJO masterPOJO) {
         this .masterPOJO = masterPOJO;
    }
 
 }
кажется так
...
Рейтинг: 0 / 0
27.04.2005, 12:08
    #33037837
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
во-первых, доклеты должны писаться у атрибутов, а не у их get/set методов

во-вторых, master-detail это one-to-many отношение и о нем много чего написано в документации и на форуме, например тут /topic/157000&hl=hibernate
...
Рейтинг: 0 / 0
27.04.2005, 12:18
    #33037876
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
funikovyuriво-первых, доклеты должны писаться у атрибутов, а не у их get/set методов
вы это говорите со всей ответственностью?
...
Рейтинг: 0 / 0
27.04.2005, 13:18
    #33038058
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
hibernate mapping master-detail отношения и XDoclet - прошу помощи
zalexaka

Забираю свои слова обратно. Я xdoclet'ами не пользуюсь и поэтому для меня странно что отношение описанное для get метода потом преобразуется в запись в xml-файле вида
Код: plaintext
1.
2.
3.
4.
5.
<property name="birthdate" type="date"/>
                <property name="color" not- null ="true"/>
                <property name="sex" not- null ="true" update="false"/>
                <property name="weight"/>
                <many-to-one name="mate" column="mate_id"/>

где уже фигурируют только имена свойств, а соответсвующий вызов get/set лежит на плечах самого hibernate и основывается на JavaBeans Spec...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate mapping master-detail отношения и XDoclet - прошу помощи / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]