注释异常:使用@OneToMany或@ManyToMany定位具有多个数据源的未映射类



有两个类:

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"
    }

您的注释看起来不错。以下是要检查的事项:

  1. 确保注解是javax.persistence.Entity,而不是org.hibernate.annotations.Entity。前者使实体可检测。后者只是一个补充。

  2. 如果要手动列出实体(在持久性.xml、休眠.cfg.xml或配置会话工厂时(,请确保还列出了实体 1 和实体 2。

  3. 确保在不同的包中没有多个 Entity1 和 Entity2 类,并且导入了错误的类。

最新更新