我有两个实体,一个在内存数据库的H2中,另一个在SQL Server中,我需要映射一个OneToMany。当我这样做时,收到这个错误:"caused by: org.hibernate.AnnotationException:@OneToOne or @ManyToOne on ENTITY-1 references an unknown entity: ENTITY-2“。
Entity-1
@OneToMany(mappedBy = "entity1")
private Set<Entity2> entity2;
public Set<Entity2> getEntity2() {
return entity2;
}
Entity-2
@ManyToOne
@JoinColumn(name = "identity1")
private Entity1 entity1;怎么了?谢谢。
发布于 2020-07-28 05:24:49
您的JPA实现不能映射不同数据库中的两个实体,因为该映射用于生成对该数据库执行的sql请求(没有什么比跨数据库sql join请求更好的了)。此外,您还会得到异常,因为内部entitymanager (如果使用hibernate,则为hibernate会话)仅管理附加到它的实体。并且每个实体管理器/会话只能实例化单个数据库连接。
您的问题的一个解决方案是对两个单独的请求执行此操作,并手动设置它,或者使用简单的映射器,如jmapper (而不是orm)。不要忘记将这两个属性设置为瞬态(@瞬态),这样orm就会忽略它。
https://stackoverflow.com/questions/63123604
复制相似问题