Класс org.hibernate.MappingException не найден при поиске свойства

1

Пожалуйста, помогите мне, мне действительно нужна помощь... Я создаю составной идентификатор в hibernate.Here вещи, которые у меня есть

PurchasedTestId.java

package jp.go.mhlw.vaccine.draft;

import java.io.Serializable;

public class PurchasedTestId implements Serializable {

private static final long serialVersionUID = 1L;

private Long testId;
private Long customerId;

// an easy initializing constructor
public PurchasedTestId(Long testId, Long customerId) {
    this.testId = testId;
    this.customerId = customerId;
}
      // generate setters and getters here
}

И вот мой файл vaccin.hbm.xml

<class name="jp.go.mhlw.vaccine.draft.PurchasedTestttt" table="PurchasedTesttt">
        <composite-id name="purchasedTestId" class="jp.go.mhlw.vaccine.draft.PurchasedTestId">
            <key-property name="testId" >
                <column name="testId" ></column>
            </key-property>
            <key-property name="customerId"  column="customerId" />  
        </composite-id>
        <property name="name" column="name" type="string" />
    </class>

Я использую Ant build (используя файл bulld.xml) для создания класса Domain и DB shema, только класс BuyasedTestttt будет сгенерирован в моем случае, ранее я создал класс BuyasedTestId. Когда я начинаю запускать инструменты, он бросает

org.hibernate.MappingException: class jp.go.mhlw.vaccine.draft.PurchasedTestId not found while looking for property: testId

Но в моем файле vaccin.hbm.xml я могу держать контрольный ключ и нажимать на

jp.go.mhlw.vaccine.draft.PurchasedTestId

И он сразу перескакивает в файл PurchasedTestId.java с тем же именем пакета. Обычно класс BuyasedTestId находится в моем пути к классам. Я много искал в течение 2 дней, но я не мог решить свою проблему. Пожалуйста, помогите мне разобраться, что это такое. Я так устал Пожалуйста, помогите мне.

  • 0
    ПриобретенныйТест - это конструктор без параметров? Обычно Hibernate нуждается в одном ... А как выглядит PurchaseagedTestttt (действительно странное имя)?
  • 0
    yes В поле PurchaseagedTestId также есть один конструктор по умолчанию, без аргументов. У класса CustomersedTestttt (объект домена) есть свойства, как указано выше .ирусин. hbm.xml. Этот объект домена будет сгенерирован при запуске файла build.xml (сборка Ant). Это может быть ошибка в спящем режиме или я скучаю по банкам?
Показать ещё 3 комментария
Теги:
hibernate
ant
hibernate-mapping
composite-primary-key

1 ответ

1
Лучший ответ

Вам не нужно указывать класс составного идентификатора в файле hbm.xml; вы должны указать имя свойства в вашем классе PurchasedTestttt. Например, это должно выглядеть так:

Класс PurchaseTestttt:

public class PurchasedTestttt {
    PurchasedTestId purchasedTestId;

    public PurchasedTestId getPurchasedTestId() {
       return purchasedTestId;
    }
    public void setPurchasedTestId(PurchasedTestId purchasedTestId) {
        this.purchasedTestId = purchasedTestId;
    }
    ....
}

*.hbm.xml:

<class name="entities.PurchasedTestttt">
    <composite-id name="purchasedTestId">
        <key-property name="testId" column="TEST_ID" />
        <key-property name="customerId" column="CUSTOMER_ID" />
    </composite-id>
    ...
</class>

Важно, чтобы класс, который вы используете для составного идентификатора, имеет свойства с тем же именем, что указано в *.hbm.xml, но Hibernate не должен знать класс, который вы использовали для этого.

  • 0
    Большое спасибо. Если я вручную кодирую файл PurchasedTestttt.java, он работает нормально. Но я хочу использовать инструмент Ant вместе с файлом hbm.xml (в моем случае это файл build.xml и файлcinine.hbm.xml). ) для создания классов домена и схемы базы данных. У меня есть много таблиц, поэтому я не мог вручную кодировать все файлы домена по одному. build.xml работает очень хорошо, когда я не использовал составной идентификатор. Я хочу знать, как я могу включить класс jp.go.mhlw.vaccine.draft.PurchasedTestId в class.path файла build.xml. Большое спасибо за ваш Ответить :)
  • 0
    Тогда вам, возможно, следует открыть новый вопрос относительно этого скрипта муравья (если он не слишком большой). И я был бы рад, если бы вы вознаградили меня за усилия «как» или «прими»; о)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню