Hibernate: почему @OneToMany с List <MyClass>не работает? - PullRequest
2 голосов
/ 03 февраля 2010

У меня странная ошибка с Hibernate3:

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

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

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

"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>

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

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

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

0 голосов
/ 03 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...