有两个类:
basepackage.a.实体1
和
basepackage.a.b.Entity2
实体 1 与实体 2 @ManyToMany关系
实体 1:
@Entity
Table(name = "Entity1")
public class Entity1 {
// fields here
@ManyToMany
@JoinTable(
name = "Entity1_TO_Entity2",
joinColumns = @JoinColumn(name = "Entity1_ID"),
inverseJoinColumns = @JoinColumn(name = "Entity2_ID")
)
private Set<Entity2> entities2;
实体 2:
@Entity
Table(name = "Entity2")
public class Entity2 {
// fields here
@ManyToMany(mappedBy = "entities2")
private Set<Entity2> entities1;
应用程序上下文启动时出错。
注释异常:使用面向未映射类的@OneToMany或@ManyToMany
错误原因是在多个数据源的床配置中。下一个配置也在寻找子包
basePackages = {
"basepackage.a"
}
您的注释看起来不错。以下是要检查的事项:
-
确保注解是javax.persistence.Entity,而不是org.hibernate.annotations.Entity。前者使实体可检测。后者只是一个补充。
-
如果要手动列出实体(在持久性.xml、休眠.cfg.xml或配置会话工厂时(,请确保还列出了实体 1 和实体 2。
-
确保在不同的包中没有多个 Entity1 和 Entity2 类,并且导入了错误的类。