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

时间:2018-04-12 10:57:36

标签: hibernate multiple-databases

有两个班级:

basepackage.a .Entity1

basepackage.a .b.Entity2

Entity1与Entity2有

ENTITY1:

@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;

ENTITY2:

@Entity
Table(name = "Entity2")
public class Entity2 {

// fields here

@ManyToMany(mappedBy = "entities2")
private Set<Entity2> entities1;

应用程序上下文启动时出错。

  

AnnotationException:使用@OneToMany或@ManyToMany定位未映射的类

2 个答案:

答案 0 :(得分:0)

错误原因是床配置多个数据源。 下一个配置也在寻找子包

 basePackages = {
            "basepackage.a"
    }

答案 1 :(得分:0)

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

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

  2. 如果您手动列出实体(在persistence.xml中,在hibernate.cfg.xml中,或在配置会话工厂时),请确保您还列出了Entity1和Entity2。

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