2010-02-03 3 views
2

У меня есть странная ошибка с Hibernate3 здесь:Hibernate: Почему @OneToMany со списком <MyClass> не удается?

Есть класс SoftwareDescription, сохраняющийся его со следующим полем закомментировано работаю просто отлично:

@OneToMany 
@JoinColumn(name = "id") 
private List<SoftwarePrice> prices = new ArrayList<SoftwarePrice>(); 

Есть методы получения и установки для этой области. Когда я пытаюсь оставаться в SoftwareDescription, я получаю эту ошибку:

"Use of @OneToMany or @ManyToMany targeting an unmapped class: de.abelssoft.domain.SoftwareDescription.prices[de.abelssoft.domain.SoftwarePrice]" 

Это мой SoftwarePrice - Класс:

package de.abelssoft.domain; 
//...imports... 

@Entity 
public class SoftwarePrice implements Serializable{ 

private static final long serialVersionUID = 8771685731600495299L; 

public SoftwarePrice(){} 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private long id; 

@Lob 
private Currency currency = null; 

private SoftwareLicenses license = null; 

private double price = 0.0; 

//... setters getters... 
} 

Это мой Hibernate Файл конфигурации:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory name="MyHibernateSessionFactory"> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 

     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> 
     <property name="hibernate.connection.password">root</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 
     <property name="current_session_context_class">thread</property> 
     <property name="show_sql">false</property> 
    <property name="hbm2ddl.auto">update</property> 
    <mapping class="de.abelssoft.domain.SoftwareDescription" /> 
    <mapping class="de.abelssoft.domain.SoftwareCategory" /> 
    <mapping class="de.abelssoft.domain.SoftwarePrice" /> 
    <mapping class="de.abelssoft.domain.SoftwareDescriptionText" /> 
    </session-factory> 
</hibernate-configuration> 
Может

кто объясните, что я здесь не вижу?

ответ

1

В вашем конфигурационном XML-файле не упоминается SoftwareLicenses. Я предполагаю, что Hibernate не может отобразить SoftwarePrice из-за отсутствия записи SoftwareLicenses, и это затем переводит в неспособность сопоставить отношение между SoftwareDescription и SoftwarePrice.

+0

Uhm. Хорошая идея, забыл упомянуть, но это всего лишь переименование. Я получил это поле в SoftwareDescription.class, которое сохранилось хорошо, а также нацелено на перечисление: private de.abelssoft.domain.SoftwareArchives softwareArchive; – Akku

0

Хорошо, похоже, ошибка была довольно глупой. Я использовал Entity-Annotation из Hibernate вместо javax.persistence-one. Решаемые.

Смежные вопросы