【问题标题】:how to get only selected table from stored procedures?如何从存储过程中只获取选定的表?
【发布时间】:2015-05-15 07:39:03
【问题描述】:

我有一个如下的存储过程

CREATE PROCEDURE [dbo].[spConfiguration_test]
@ID int
AS
select empid,name from employee;
select * from address;

我想从 jpa 调用这个存储过程。所以我确实喜欢这个

DAO代码

public List test()
{
    String execProce="exec spConfiguration_test 1";
    System.out.println(execProce);
    Query query = entityManagerUtil.entityManager.createNativeQuery(execProce);
    return query.getResultList();
}

服务类代码

List test=serviceDaoImpl.test();

当我调试它时,List(test) 大小显示为 1,当我运行它时,它只给我第一个表的记录(选择 empid,员工姓名;)

但是我想要存储过程执行时第二张表的详细信息。

谁能指导我一下?

【问题讨论】:

  • 什么 JPA 实现?什么版本的 JPA?
  • @NeilStockton 我正在使用 hibernate-jpa-2.0-api
  • 在这种情况下,您唯一的选择是将您的存储过程分成 2 个......您只能从使用 JPA 2.1 的存储过程中获取多个结果集
  • @NeilStockton 你想让我把 JPA 升级到 2.1 吗?
  • @NeilStockton 你确定如果我升级到 JPA 2,1 那么我会得到列表大小为 2 并且如果有 n 个选择查询然后我会得到列表大小为 n 吗?

标签: java sql-server spring jpa stored-procedures


【解决方案1】:

如果将两个查询合并为一个。那么一切都必须正常工作。

例子:

SELECT e.empid
      ,e.name
      ,a.*
  FROM employee e
      ,address a
 WHERE e.empid = a.empid;

【讨论】:

  • 我没有发布我的原始代码,所以你的方法行不通
猜你喜欢
  • 2022-11-25
  • 2014-04-21
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
相关资源
最近更新 更多