【发布时间】:2015-07-22 08:34:12
【问题描述】:
我在 SQL Server 中有两个表:
表 A
ID Num
11 tj55
4 tj40
表 B
ID NUM A_ID
3 se400 4
5 se500 4
我有一个存储过程,它将为 A 中的每一行返回 B 中的所有相应行,我有这个结果
NumA NumB
tj40 se400
tj40 se500
代码:
ALTER PROCEDURE [dbo].[Proc]
@param nvarchar(MAX),
AS
BEGIN
SELECT
aa.Num,
bb.Num
FROM
[dbo].[A] as aa
INNER JOIN
[dbo].[B] AS bb ON bb.A_ID = aa.ID
WHERE
aa.Num = @param
ORDER BY
aa.Num
END
我想在我的 Java 应用程序中使用 JPA 调用我的 StoredProcedure 来生成两行(我的目标是让 List 包含所有 NumB(在本例中为“se400”和“se500”)
StoredProcedureQuery query2 = em.createStoredProcedureQuery("Proc");
query2.registerStoredProcedureParameter("param", String.class,ParameterMode.IN);;
query2.setParameter("param", "tj40");
query2.execute();
List<Object> res = query2.getResultList();
for (int i=0; i<res.size(); i++){
System.out.println(res.get(i).toString());
}
它找到了两行但它返回了
[Ljava.lang.Object;@94814
[Ljava.lang.Object;@00856
你能帮帮我吗? 非常感谢
【问题讨论】:
-
你的意思是,将结果行转换为 Object[] ?!
-
我最好的方案是将结果行转换为 List
(或 Object 但我需要将其转换为 String) -
如果一行是一个 Object[] 为什么你要把它转换成(字符串)?!
-
我可能不应该使用“cast to String”这个词,我的意思是我需要像 Object[1] 一样访问对象的内容...(在本例中为“se400”和“se500”值)
标签: java sql sql-server jpa