首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用内存中的H2实体和SQLServer实体映射@OneToMany与JPA的关系吗?

我可以用内存中的H2实体和SQLServer实体映射@OneToMany与JPA的关系吗?
EN

Stack Overflow用户
提问于 2020-07-28 05:08:57
回答 1查看 148关注 0票数 0

我有两个实体,一个在内存数据库的H2中,另一个在SQL Server中,我需要映射一个OneToMany。当我这样做时,收到这个错误:"caused by: org.hibernate.AnnotationException:@OneToOne or @ManyToOne on ENTITY-1 references an unknown entity: ENTITY-2“。

代码语言:javascript
复制
Entity-1 
@OneToMany(mappedBy = "entity1")
    private Set<Entity2> entity2;

    public Set<Entity2> getEntity2() {
        return entity2;
    }

Entity-2
  @ManyToOne
  @JoinColumn(name = "identity1")
  private Entity1 entity1;

怎么了?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-07-28 05:24:49

您的JPA实现不能映射不同数据库中的两个实体,因为该映射用于生成对该数据库执行的sql请求(没有什么比跨数据库sql join请求更好的了)。此外,您还会得到异常,因为内部entitymanager (如果使用hibernate,则为hibernate会话)仅管理附加到它的实体。并且每个实体管理器/会话只能实例化单个数据库连接。

您的问题的一个解决方案是对两个单独的请求执行此操作,并手动设置它,或者使用简单的映射器,如jmapper (而不是orm)。不要忘记将这两个属性设置为瞬态(@瞬态),这样orm就会忽略它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63123604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档