gpt4 book ai didi

java - 如何将Java中的 native 查询结果转换为字符串?

转载 作者:行者123 更新时间:2023-11-29 09:59:02 26 4
gpt4 key购买 nike

我有一个查询,它将返回表中包含 2 列的单个记录我想将结果获取到列表,每个元素都包含一个列值,但我不断收到 ClassCastExceptoion这是代码:

public List<String> getStatus(Long requestId) {
List result = new ArrayList();
if (requestId != null)

{
StringBuilder querySBuilder = new StringBuilder();
querySBuilder.append(" select R.request_status_id , L.request_status_desc ");
querySBuilder.append(" from Table1 R join Table2 L ");
querySBuilder.append(" on R.request_status_id = L.REQUEST_STATUS_Id ");
querySBuilder.append(" where R.REQUEST_ID = " + requestId);
System.out.print(querySBuilder.toString());
List resultList =
em.createNativeQuery(querySBuilder.toString()).getResultList();
Vector resultVec = (Vector)resultList.get(0);

int id = ((BigDecimal)resultVec.elementAt(0)).intValue();
String statusName = ((String)resultVec.elementAt(0));

System.out.println("id" + id);
System.out.println("name " + statusName);
result.add(id);
result.add(statusName);
if (resultVec == null || resultVec.isEmpty()) {
return new ArrayList<String>();
}
return result;


}

return null;
}

最佳答案

我使用的模式是将传入的 native 结果集表述为 List<Object[]> ,其中每个对象数组代表一条记录:

Query q = em.createNativeQuery(querySBuilder.toString());
List<Object[]> result = q.getResultList();

for (Object[] row : result) {
int id = (Integer)row[0];
String statusName = (String)row[1];

// do something with the id and statusName from above
}

关于java - 如何将Java中的 native 查询结果转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53373375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com