Я нахожу свои ноги с аннотациями Hibernate, и я столкнулся с проблемой, на которую надеюсь, что кто-то может помочь.Проблема с гибернацией - «Использование @OneToMany или @ManyToMany для таргетинга на немаркированный класс»
У меня есть 2 объекта, раздел и область применения. Раздел имеет член класса List, поэтому отношение «Один ко многим». Когда я запускаю мое модульное тестирование я получаю это исключение:
Использования @OneToMany или @ManyToMany ориентации неподключенного класса: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
Я бы предположил, что ошибка подразумевает, что мой объект ScopeTopic не сопоставляется с таблицей? Я не вижу, что я сделал не так. Вот классы сущностей:
@Entity
public class Section {
private Long id;
private List<ScopeTopic> scopeTopics;
public Section() {}
@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToMany
@JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")},
inverseJoinColumns = {@JoinColumn(name="scope_topic_id")})
public List<ScopeTopic> getScopeTopic() {
return scopeTopic;
}
public void setScopeTopic(List<ScopeTopic> scopeTopic) {
this.scopeTopic = scopeTopic;
}
}
@Entity
@Table(name = "scope_topic")
public class ScopeTopic {
private Long id;
private String topic;
public ScopeTopic() {}
@Id
public Long getId() {
return id;
}
public void setId() {
this.id = id;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
}
Я уверен, что это мое собственное непонимание, что это по вине поэтому некоторые рекомендации было бы здорово, спасибо!
Ах, спасибо! Точка 2 была ключом, я забыл поместить ScopeTopic в свой список свойств annotatedClasses при создании ошибки SessionFactory, n00b! – C0deAttack
Точка 1 была для меня ключом: D thanks –
Для тех, кто просто ударил этот комментарий. org.hibernate.annotations.Entity устарела в Hibernate 4. Точка 1 больше не применяется. – gspatel