Znajduję swoje stopy przy pomocy adnotacji Hibernate i trafiłem na problem Mam nadzieję, że ktoś może pomóc.Problem hibernacji - "Używanie @OneToMany lub @ManyToMany kierowania na niezmapowaną klasę"
Mam 2 podmioty, Section and ScopeTopic. Sekcja ma członka klasy List, a więc związek One to Many. Kiedy uruchomić mój testów jednostkowych otrzymuję ten wyjątek:
Zastosowanie @OneToMany lub @ManyToMany kierowania się niemapowany klasę: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
Założę się, że błąd sugeruje, że mój obiekt ScopeTopic nie jest mapowany do tabeli? Nie widzę, gdy zrobiłem źle. Oto podmiot klas:
@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;
}
}
Jestem całkiem pewien, że to mój własny brak zrozumienia, że co winy więc pewne wskazówki byłoby świetnie, dzięki!
Ah, dzięki! Punkt 2 był kluczem, zapomniałem umieścić ScopeTopic w mojej liście właściwości adnotowanych klas podczas tworzenia błędu SessionFactory, n00b! – C0deAttack
Punkt 1 był dla mnie kluczem: D dzięki –
Dla tych, którzy właśnie trafiają w ten komentarz. org.hibernate.annotations.Entity jest przestarzałe w Hibernate 4. Punkt 1 już się nie stosuje. – gspatel