powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate mapping master-detail отношения и XDoclet - прошу помощи
6 сообщений из 6, страница 1 из 1
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33037739
Лембит Альвелаев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимаю что, вобщем-то, 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
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33037757
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лембит Альвелаев...
P.S Извините за обилие букв :)
Можно попросить код оформлять с помощью тегов SRC?
...
Рейтинг: 0 / 0
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33037816
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33037837
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых, доклеты должны писаться у атрибутов, а не у их get/set методов

во-вторых, master-detail это one-to-many отношение и о нем много чего написано в документации и на форуме, например тут /topic/157000&hl=hibernate
...
Рейтинг: 0 / 0
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33037876
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriво-первых, доклеты должны писаться у атрибутов, а не у их get/set методов
вы это говорите со всей ответственностью?
...
Рейтинг: 0 / 0
hibernate mapping master-detail отношения и XDoclet - прошу помощи
    #33038058
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate mapping master-detail отношения и XDoclet - прошу помощи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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