Caused by: java.sql.SQLException: [Ingres][Ingres ODBC Driver][Ingres]line 1, Syntax error on 'student0_'.  The correct syntax is: 
 SELECT [ALL|DISTINCT] target_list 
  FROM table(s) 
  [WHERE search_cond] 
  [GROUP BY col(s)] 
  [HAVING search_cond] 
 [UNION subselect] 
 [ORDER BY col(s)]从这里看出是语法错误!
仔细看看你写的sql语句

解决方案 »

  1.   

    <property name="temp" formula="(select name from student where name='liu')" />student第一个大写看看不是很懂是个什么意思..
      

  2.   

    好像是
    List Objects = session.find("from Student as s");
    这个出错,怎么解决啊急死了
    高手救命!
      

  3.   

    应该是SQL语句语法有问题
    把hibernate配置文件中的hibernate.show_sql属性设置为true这样把SQL语句打出来看看!
    初步估计是session.find("from Student as s");
    有些数据库表取别名好像不支持 as 你也可以改为session.find("from Student s");
    试试!
      

  4.   

    什么数据库 
    from Student 改下表名大小写试试,as s 去掉好了
      

  5.   

    谢谢大家!
    Ingres 数据库, 是支持as s 这样的写法的!
    试过把as s去掉, 还是不成
    求助ing
      

  6.   

    那你就把SQL语句打出来看看,然后还可以拿到数据库客户端执行方便看错误出现在哪里,据此才好改正程序!
      

  7.   

    好像不应该是sql语句的错
    高手们帮我看看是不是程序,或配置上有问题
    谢谢各位帮我支持一下,千万要解决啊
      

  8.   

    List Objects = session.find("from Student as s");
    改成
    List  Objects = session.createQuery("from Student ").list();
    试试!!!
      

  9.   

    好像表不能用别名的 去掉as s试试看
      

  10.   

    不知道你是不是要完成在配置文件中写入sql语句,然后在dao类中调用。查询出list。如果是参看下面的配置文件吧 呵呵~ 里面的有些东西 对你可能没有什么用。只要注意query即可。<?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse - Hibernate Tools
    -->
    <hibernate-mapping>
        <class name="com.telstar.wsdf.bo.WsdfRbacUser" table="WSDF_RBAC_USER" schema="WSDF">
            <id name="userId" type="string">
                <column name="USER_ID" length="20" />
                <generator class="assigned" />
            </id>
            <property name="userPassword" type="string">
                <column name="USER_PASSWORD" length="20" />
            </property>
            <property name="userName" type="string">
                <column name="USER_NAME" length="50" />
            </property>
      <!--      <property name="orgId" type="string">
                <column name="ORG_ID" length="10" />
            </property>-->
            <property name="registerDate" type="date">
                <column name="REGISTER_DATE" length="7" />
            </property>
            <property name="accountsStatus" type="string">
                <column name="ACCOUNTS_STATUS" length="1" />
            </property>
            <property name="re" type="string">
                <column name="REMARK" length="100" />
            </property>
          <one-to-one
    name="userextend"
    class="com.telstar.wsdf.bo.WsdfRbacUserExtend"
    cascade="all"
    outer-join="false"
    lazy="false"/>
    <many-to-one name="department"
    class="com.telstar.wsdf.bo.WsdfRbacOrganization"
    cascade="none"
    column="org_id"
    fetch="join" 
    lazy="false"/>

      <set name="userconn" lazy="false" inverse="true" cascade="all" table="wsdf_rbac_user_conn"> 
          <key column="user_id"/> 
          <one-to-many class="com.telstar.wsdf.bo.WsdfRbacUserConn"/> 
          </set>
         
         
          <set name="role" table="wsdf.wsdf_rbac_user_role" lazy="false" inverse="false" cascade="none" fetch="select">
            <key column="user_id"/>
            <many-to-many column="role_id"
                class="com.telstar.wsdf.bo.WsdfRbacRole"/>
         </set>
         
        </class>
        <query name="temp">
         <![CDATA[from  com.telstar.wsdf.bo.WsdfRbacUser as user where user.userName= :a
         ]]>
        </query>
    </hibernate-mapping>
    配置文件中的查询可以改成自己的sql语句。<query name="temp">
         <![CDATA[from  com.telstar.wsdf.bo.WsdfRbacUser(hibernate生成的pojo配置文件) as user where user.userName= :a
         ]]>
        </query>
      

  11.   


    //测试   hql查询
    public List getHQL(){
    //第一段:基本于最基本的HQL
    String sql = "from  com.telstar.wsdf.bo.WsdfRbacUser as user where user.userName='liu'";
    //String sql = "from  com.telstar.wsdf.bo.WsdfRbacUser as user where TO_CHAR(user.registerDate,'yyyy-mm-dd')='2009-09-09'";
    //String sql = "from  com.telstar.wsdf.bo.WsdfRbacUser as user where TO_CHAR(user.registerDate,'yyyy-mm-dd')='2009-09-09' and user.userName like 'liu%'";
    //String sql = "from  com.telstar.wsdf.bo.WsdfRbacUser as user where user.userName like '%liu%'";
    System.out.println("sql=================="+sql);
    Query query = this.getSession().createQuery(sql);
    List userList = query.list();
    return userList;
    //第二段 基于Criteria
    //Criteria cir = this.getSession().createCriteria(WsdfRbacUser.class);
        //cir.add(Restrictions.between("registerDate",new java.util.Date("2001-09-09"),new java.util.Date("2009-09-09")));
    //cir.add(Expression.eq("userName","liu"));
    //cir.add(Expression.like("userName","%liu%"));
    ////cir.add(Expression.eq("registerDate",,new java.util.Date("2001-09-09"),new java.util.Date("2009-09-09")));
    ////cir.add(Expression.between("registerDate",new java.util.Date("2001-09-09"),new java.util.Date("2009-09-09")));
    //return cir.list();
    //第三段 基本于配制文件
    // Query query = this.getSession().getNamedQuery("temp");//temp是在配制文件(WsdfRbacUser.hbm.xml)中配制的name值
    // query.setString("a","liu");//a是在配制文件中WsdfRbacUser.hbm.xml配制的变量名(即冒号后面的名),liu是要查询的值
    // List userList = query.list();
    // return userList;

    }
      

  12.   

    真是太谢谢你了!
    其实我是想用 formula 属性 去映射dao 属性,
    可是总是上面的错误,
    真不知道他的sql语句是怎么生成的,
    明明是表'student',可Hibernate生成的sql 却要查'student0_'表,
    不明白,
    请高手指教是不是我的formula用错了???