解决方案 »

  1.   

    String sql = "SELECT u.name,u.type,u.sex,u.age ,u.imgurl ,p.blood_type,p.address,date_format(v.begin_date,'%Y-%m-%d %H:%i:%s')AS begin_date,date_format(v.end_date,'%Y-%m-%d %H:%i:%s')AS end_date ,g.id AS g_id,g.group_name,g.img_url FROM m_user u ,m_patient p, m_vip v ,m_group  g WHERE u.id=p.user_id AND p.user_id=v.patient_id AND v.doctor_id=? AND  p.user_id=?  AND g.d_id=v.doctor_id AND g.p_id=v.patient_id order by  end_date desc";
    //String sql2 = "SELECT u.name,u.type,u.sex,u.age ,u.imgurl ,p.blood_type,p.address FROM m_user u ,m_patient p WHERE p.user_id=u.id and p.user_id=? ";
    Query query = dao.getCurrentSession().createSQLQuery(sql);
    query.setParameter(0, user_id);
    query.setParameter(1, target_id);
    query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    List list = query.list();
      

  2.   

    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: org.hibernate.exception.SQLGrammarException: could not execute query
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.loader.Loader.doList(Loader.java:2536)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)
    at net.webservice.manager.impl.DoctorManagerImpl.patientDetail(DoctorManagerImpl.java:533)
    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.patientDetail(Unknown Source)
    at net.webservice.manager.impl.UserManagerImpl.userDetail(UserManagerImpl.java:868)
    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 $Proxy62.userDetail(Unknown Source)
    at net.webservice.http.service.UserService.userDetail(UserService.java:463)
    ... 24 more
    Caused by: java.sql.SQLException: Column 'id' not found.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
    at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1167)
    at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2851)
    at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:61)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:234)
    at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:505)
    at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:451)
    at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:348)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:639)
    at org.hibernate.loader.Loader.doQuery(Loader.java:829)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2533)
    ... 55 more
    2014-10-30 15:45:55 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)
      

  3.   

    这段sql在客户端(PLSQL或者toad……)执行还正确啊?
      

  4.   

    检查数据库的m_user中有没有id这个列
      

  5.   

    核对下数据库字段,看看m_user表是不是没有id这个字段啊
      

  6.   

    与这个表对应的hibernate配置文件和类有这个Id吗
      

  7.   

    与这个表对应的hibernate配置文件和类有这个Id吗有的
    @Entity(name="m_user")
    public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    @Column(name="username")
    private String username;
    @Column(name="mobile")
    private String mobile;
    @Column(name="name")
    private String name;
    @Column(name="psw")
    private String psw;
    @Column(name="sex")
    private int sex;  //1:男2:女
    @Column(name="email")
    private String email;
    @Column(name="type")
    private int type;  //用户类型 1:病人或家属  0:医生
    @Column(name="sortkey")
    private String sortkey;
    @Column(name="imgurl")
    private String imgurl;
    public String getImgurl() {
    return imgurl;
      

  8.   

    对应的表的xxx.hbm.xml映射文件贴出来看看
      

  9.   

    对应的表的xxx.hbm.xml映射文件贴出来看看我用的 是注解 @Entity(name="m_user")
    public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    @Column(name="username")
    private String username;
    @Column(name="mobile")
    private String mobile;
    @Column(name="name")
    private String name;
    @Column(name="psw")
    private String psw;
    @Column(name="sex")
    private int sex;  //1:男2:女
    @Column(name="email")
    private String email;
    @Column(name="type")
    private int type;  //用户类型 1:病人或家属  0:医生
    @Column(name="sortkey")
    private String sortkey;
    @Column(name="imgurl")
    private String imgurl;@Entity(name="m_group")
    public class Group {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    @Column(name="group_name")
    private String group_name;
    @Column(name="team_id")
    private int team_id;
    @Column(name="create_time")
    private Date create_time;
    @Column(name="img_url")
    private String img_url;
    @Column(name="p_id")
    private int p_id;
    @Column(name="d_id")
    private int d_id;@Entity(name="m_vip")
    public class M_Vip {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    @Column(name="patient_id")
    private int patient_id;
    @Column(name="doctor_id")
    private int doctor_id;
    @Column(name="begin_date")
    private Date begin_date;
    @Column(name="end_date")
    private Date end_date;
    @Column(name="vip_level")
    private int  vip_level;
    @Entity(name="m_patient")
    public class Patient {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;
    @Column(name="user_id")
    private int user_id;
    @Column(name="dept")
    private String dept;
    @Column(name="profession")
    private String profession;
    @Column(name="blood_type")
    private String blood_type;
    @Column(name="illness")
    private String illness;
    @Column(name="confirmed_date")
    private Date confirmed_date;
    @Column(name="history")
    private String history;
    @Column(name="re")
      

  10.   

    好像是 hibernate 中 别名的 问题 把 sql里的  g.id as g_id 改为 g.id  就好了 !谢谢大家了 !!!与这个表对应的hibernate配置文件和类有这个Id吗对应的表的xxx.hbm.xml映射文件贴出来看看有的