怎么把query.list()的数据存进json 里?小白求教

sinat_19250161 2014-09-16 04:38:52

@Override
public String countPatient(String doctor_id) throws JSONException {
JSONObject obj = new JSONObject();
List<User> dlist = checkUser(doctor_id);
if (dlist.size() < 0) {
return obj.put("patientCode", "3").toString();
}
String sql = "SELECT distinct(SELECT COUNT(*) FROM m_vip WHERE " +
"end_date > SYSDATE() AND doctor_id=?) nowpatient,(SELECT COUNT(*) FROM m_vip WHERE" +
" end_date < SYSDATE() and doctor_id=?) historypatient; ";
Query query = dao.getCurrentSession().createSQLQuery(sql);
query.setParameter(0, doctor_id);
query.setParameter(1, doctor_id);
@SuppressWarnings("rawtypes")
List list = query.list();
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
JSONObject json = new JSONObject();
if (list.size() > 0) {
Map map = (Map) list.get(0);
json.put("historypatient", map.get("id").toString());
json.put("nowpatient", map.get("name").toString());
return obj.put("patientCount", json).toString();

} else {
return obj.put("patientCode", "2").toString();
}
}
报错信息:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at net.webservice.http.servlet.RCServlet.doPost(RCServlet.java:48)
at net.webservice.http.servlet.RCServlet.doGet(RCServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.Map
at net.webservice.manager.impl.CasemanagerImpl.countPatient(CasemanagerImpl.java:240)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy63.countPatient(Unknown Source)
at net.webservice.http.service.CaseService.countPatient(CaseService.java:234)
... 24 more
2014-9-16 16:33:31 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [RCServlet] in context with path [/rcserver] threw exception
java.lang.NullPointerException
at net.webservice.http.servlet.RCServlet.doPost(RCServlet.java:75)
at net.webservice.http.servlet.RCServlet.doGet(RCServlet.java:83)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
...全文
140 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_19250161 2014-09-16
  • 打赏
  • 举报
回复
引用 1 楼 whos2002110 的回复:
Map map = (Map) list.get(0); 这里错了, 你sql 查处的结果集里现实不是个map呀, 怎么能这么强转呢
ok ,搞好了 !这样写 是可以的 query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); 我爸这句话 放错位置了 ; 另外 json.put("historypatient", map.get("id").toString()); json.put("nowpatient", map.get("name").toString()); 这两个名字 忘了改了
whos2002110 2014-09-16
  • 打赏
  • 举报
回复
Map map = (Map) list.get(0); 这里错了, 你sql 查处的结果集里现实不是个map呀, 怎么能这么强转呢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧