跨数据库的Hibernate内部联接

时间:2011-08-08 08:45:40

标签: java hibernate spring

我的数据库中有一个表(instance_main),我需要在另一个数据库(instance_core)内连接。通常我会使用这样的东西。

SELECT
instance_core.cnm.MenuID,
instance_core.cnm.NavigationID,
instance_core.cnm.StackView,
instance_core.cnm.StackClass,
instance_core.cnm.IsAdmin
FROM
instance_core.CoreNavigationMenu cnm
INNER JOIN instance_main.ACLGroupPermissions gp ON instance_core.cnm.MenuID = instance_main.gp.MenuID
WHERE instance_main.gp.GroupID = 1

我没有从ACLGroupPermissionsCoreNavigationMenu的多对多关系。

到目前为止,我已尝试过此操作,但它始终返回null结果。非常感谢任何帮助。

@Override
public List<CoreNavigationMenu> getPermissions(AclGroup dataObject) {

    List<CoreNavigationMenu> aclList = template.find("FROM CoreNavigationMenu cnm inner join ACLGroupPermissions agp on cnm.MenuID = agp.MenuID WHERE agp.GroupID = ?",dataObject.getGroupId());        

    return aclList;
}

我的ACLGroupPermissions实体如下所示:ACLGroupPermission Entity

我的CoreNavigationMenu实体如下所示:CoreNavigationMenu Entity

1 个答案:

答案 0 :(得分:1)

同意Adi的评论 - 根据Doing a join over 2 tables in different databases using Hibernate中提到的原因,这是无法做到的。

(主要是发布这个答案,试图让这个问题得到一些额外的关注/竞争性答案,或者至少,只是将其从未解决的问题列表中删除。)