Me encuentro bien con las anotaciones de Hibernate y he encontrado un problema con el que espero que alguien pueda ayudarme.
Tengo 2 entidades, Section y ScopeTopic. La sección tiene un miembro de la clase List, por lo que una relación de uno a muchos. Cuando ejecuto mi prueba unitaria, obtengo esta excepción:
Uso de @OneToMany o @ManyToMany para una clase no asignada: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
¿Asumiría que el error implica que mi entidad ScopeTopic no está asignada a una tabla? No puedo ver con lo que hice mal. Aquí están las clases de entidad:
@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;
}
}
Estoy bastante seguro de que es mi propia falta de comprensión lo que tiene la culpa, así que alguna orientación sería genial, ¡gracias!

packagesToScanEl mío no tenía
@Entityen la entidad de muchos ladosfuente
Es posible que su entidad no aparezca en el archivo de configuración de hibernación.
fuente
Principalmente
Hibernate, es necesario agregar laEntityclase enhibernate.cfg.xmllike-fuente
Si está utilizando la configuración de Java en un proyecto spring-data-jpa, asegúrese de que está escaneando el paquete en el que se encuentra la entidad. Por ejemplo, si la entidad vivía com.foo.myservice.things , la siguiente anotación de configuración a continuación no lo haría recógelo.
Puede solucionarlo aflojándolo a solo com.foo.myservice (por supuesto, tenga en cuenta cualquier otro efecto de ampliar su alcance para buscar entidades).
fuente
En mi caso, tengo que agregar mis clases, al construir el
SessionFactory, conaddAnnotationClassfuente
Tuve el mismo problema y pude resolverlo agregando la entidad en persistence.xml. El problema se debió al hecho de que la entidad no se agregó a la configuración de persistencia. Edite su archivo de persistencia:
...
fuente