关于跨库查询

关于跨库查询咨询,请问一下我有A模块和B模块,A模块的数据库是dbA,B模块的数据库是dbB,A模块引用了B模块,我在A模块里面能用JPA查询语句跨库链表查询吗?比如dbA表 left join dbB的表.

这样做的话,需要数据库层面的支持。比如用到 DB link 之类的技术。因为 EntityManager 是对应到某一个数据库的。

SO看到一个用 @Tableschema 属性的:mysql - Cross database joins in JPA - Stack Overflow

JMIX1.5.2框架没有一些跨库链表查询的文档吗?不一定要用JPA,用其他的查询连表也可以呀,能否给一下JMIX1.5.2框架的相关文档资料

  • 可以使用原生sql 进行更灵活的关联查询
    参考 EntityManager.createNativeQuery , Jmix 文档中好像没有详细介绍 Nativate query, 可以参考一下 CUBA 中的介绍 : 执行 SQL 查询 - CUBA 框架开发者手册 (cuba-platform.cn)
  • 可以描述一下具体的应用场景,要解决什么问题,我们看看有没有合适的方案

比如一个项目中,我有一个用户模块连的是user库,还有一个订单模块连的是订单库,我订单模块依赖了用户模块,我订单模块想做一个查询列表,就是查询订单把用户信息也关联查询出来,列表功能中也可以输入用户条件进行查询订单列表。所以我想写一个垮库链表查询语句。能实现吗。

在加载订单实体的时候,有没有办法确定对应的user实体呢?如果能确定的话,可以在订单实体的loading监听里面加载对应的user实体。

比如我想写的带条件查询关联语句 select u.name,o.orderNo from orderTable o left join userTable u on o.userId=u.id where u.code=‘S0001’ and o.productName=‘手机’ 说明一下 user表是user库的,order表是订单库的