You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JPA跨数据库执行存储过程问题及优化方案求助

跨数据库调用存储过程的实现问题

我有两个数据库:

  • 主数据库:持久化单元(PU)已配置连接该库
  • 其他项目的数据库:包含员工、部门表及通用存储过程,需要执行该库中的存储过程

尝试过的两种无效方案

方式一:使用StoredProcedureQuery

代码:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery("[otherDb].[dbo.][sp_name]");
query.registerStoredProcedureParameter(1, String.class, ParameterMode.OUT);
query.getOutputParameterValue(1);

抛出异常:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The database name component of the object qualifier must be the name of the current database.

方式二:使用NativeQuery调用存储过程

代码:

Query query = entityManager.createNativeQuery("{call sp_name(?)}");
query.executeUpdate();
query.getParameterValue(1);

该方式未生效。

当前可行方案

Query  query = entityManager.createNativeQuery( "declare @param1 varchar(10) ; exec [otherDb].[dbo].[sp_name] @param1 output; select @param1");     
(String)query.getSingleResult();

寻求更优实现方案。

内容的提问来源于stack exchange,提问作者HMoussa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:59:54