Я нахожусь на ногах с Hibernate Annotations, и у меня возникла проблема, с которой, надеюсь, кто-то может помочь.
У меня есть 2 объекта: Section и ScopeTopic. В разделе есть член класса List, поэтому отношение «один ко многим». Когда я запускаю свой модульный тест, я получаю следующее исключение:
Использование @OneToMany или @ManyToMany для несопоставленного класса: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
Я бы предположил, что ошибка означает, что моя сущность ScopeTopic не сопоставлена с таблицей? Я не понимаю, я поступил неправильно. Вот классы Entity:
@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;
}
}
Я почти уверен, что это мое собственное непонимание, поэтому некоторые рекомендации были бы отличными, спасибо!
packagesToScan
У меня не
@Entity
было много сторонней организацииисточник
Ваша организация может не отображаться в файле конфигурации гибернации.
источник
В основном в
Hibernate
, необходимо добавитьEntity
класс вhibernate.cfg.xml
как-источник
Если вы используете конфигурацию Java в проекте spring-data-jpa, убедитесь, что вы сканируете пакет, в котором находится объект. Например, если объект жил com.foo.myservice.things, то следующая аннотация конфигурации ниже не будет возьми это.
Вы можете исправить это, расширив его до com.foo.myservice (конечно, помните о любых других эффектах расширения области действия для сканирования объектов).
источник
У меня была такая же проблема, и я мог решить ее, добавив объект в persistence.xml. Проблема возникла из-за того, что объект не был добавлен в конфигурацию сохраняемости. Отредактируйте файл сохранения:
...
источник
В моем случае нужно добавить мои классы при построении
SessionFactory
сaddAnnotationClass
источник