powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / XDoclet и абстрактные классы?
6 сообщений из 6, страница 1 из 1
XDoclet и абстрактные классы?
    #33410671
Samik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
есть такая проблема
имею абстрактный класс Class1 с реализованным
полем id а так же методами getId и setId.
Создаю класс Class2 extends Class1 и хочу в Class2 использовать
XDoclet но в Class2 нету объявления id так как оно полностью реализовано в Class1, (а генерировать xml файл для Class1 мне не нужно) можно ли указать XDoclet что реализация некоторых полей находиться в суперклассе?
Спасибо.
...
Рейтинг: 0 / 0
XDoclet и абстрактные классы?
    #33411009
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем указывать что-то? Он сам разберется.

Пример из моего проекта:

- базовый класс (ЗАМЕТЬТЕ: в нем НЕТ специальных JavaDoc тегов типа @hibernate.class - следовательно, для него маппинг создаваться НЕ БУДЕТ!):

Код: 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.
/**
 * @author Mikhail A.Golovanov [mgolovanov@yahoo.com]
 */

 public   class  OPSJob  implements  java.io.Serializable {

   protected   long  id;
   protected  String customerID;
   protected  String userID;

  /**
   * @hibernate.id
   *  generator-class="identity"
   *  unsaved-value="0"
   *  column="ID"
   */
   public   long  getId() {
     return  id;
  }

   public   void  setId(  long  value ) {
    id = value;
  }

  /**
   * @hibernate.property
   *  column="customerID"
   */
   public  String getCustomerId() {
     return  customerID;
  }

   public   void  setCustomerId( String value ) {
    customerID = value;
  }

  /**
   * @hibernate.property
   *  column="userID"
   */
   public  String getUserId() {
     return  userID;
  }

   public   void  setUserId( String value ) {
    userID = value;
  }

}

- производный класс:

Код: 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.
/**
 * @author Mikhail A.Golovanov [mgolovanov@yahoo.com]
 *
 * @hibernate.class
 *  table="ODP_Catalog"
 */
 public   final   class  ODP_Catalog  extends  OPSJob {

   private   long  projectID;
   private  String projectName;

  /**
   * @hibernate.property
   *  column="projectID"
   */
   public   long  getProjectId() {
     return  projectID;
  }

   public   void  setProjectId(  long  value ) {
    projectID = value;
  }

  /**
   * @hibernate.property
   */
   public  String getProjectName() {
     return  projectName;
  }

   public   void  setProjectName( String value ) {
    projectName = value;
  }

}

Результат - корректный маппинг для ODP_Catalog:

Код: 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.
64.
<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping  PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
    < class 
        name="com.foo.hibernate.ODP_Catalog"
        table="ODP_Catalog"
        dynamic-update="false"
        dynamic-insert="false"
    >

        <id
            name="id"
            column="ID"
            type="long"
            unsaved-value="0"
        >
            <generator  class ="identity">
            </generator>
        </id>

        <property
            name="projectId"
            type="long"
            update="true"
            insert="true"
            column="projectID"
        />

        <property
            name="projectName"
            type="java.lang.String"
            update="true"
            insert="true"
            column="projectName"
        />

        <property
            name="customerId"
            type="java.lang.String"
            update="true"
            insert="true"
            column="customerID"
        />

        <property
            name="userId"
            type="java.lang.String"
            update="true"
            insert="true"
            column="userID"
        />

        <!--
            To add non XDoclet property mappings, create a file named
                hibernate-properties-ODP_Catalog.xml
            containing the additional properties and place it in your merge dir.
        -->

    </ class >

</hibernate-mapping>
...
Рейтинг: 0 / 0
XDoclet и абстрактные классы?
    #33411034
Samik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо сейчас попробую.
...
Рейтинг: 0 / 0
XDoclet и абстрактные классы?
    #33411056
Samik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если исходить из вашего кода, то следует что для всех классов унаследованных от OPSJob будет создаваться таблица со столбцом ID, а если я хочу для нового класса другое имя id столбца, следовательно мне надо переписывать методы в новом классе, или есть другой способ?
...
Рейтинг: 0 / 0
XDoclet и абстрактные классы?
    #33411246
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перенесите определение поля из базового класса в производный. Если же вы хотите в тегах производного класса определять, какие поля наследовать из базового класса, то не знаю и знать не хочу... ненужные сложности.
...
Рейтинг: 0 / 0
XDoclet и абстрактные классы?
    #33411296
Samik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / XDoclet и абстрактные классы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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