BaseDaoImpl中写了
public List find(String hql,Object[] values)
{
List list = new ArrayList();
try{
list = this.getHibernateTemplate().find(hql, values);//这行报异常
}
catch(Exception ex){
ex.printStackTrace();
}
return list;
}udaoImpl继承了BaseDaoImpl 
udaoImpl中写了 // 查询语句
StringBuffer hql = new StringBuffer();
hql.append("      FROM UserInfo  ")
     .append("     WHERE loginName = ? ")
     .append("       AND loginPass = ? "); Object[] values = new Object[]{loginName, loginPass };
                return (UserInfo)super.find(hql.toString(), values).get(0);这行也报异常,sql语句没有错
UserInfo.java实体类        private byte userId; private String loginName; private String loginPass; private Byte userAge;
        。。

解决方案 »

  1.   

    hql语句里不需要参数,却添加了一个参数,删掉添加参数的语句就可以了!
      

  2.   

    确认UserInfo在配置文件里的name,否则就检查关联关系喵~~~
      

  3.   

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 2008-11-25 15:51:13 by Hibernate Tools 3.2.0.beta8 -->
    <hibernate-mapping>
        <class name="com.expayment.monet.domain.UserInfo" table="user_info" catalog="test">
            <comment></comment>
            <id name="userId" type="byte">
                <column name="user_id" />
                <generator class="assigned" />
            </id>
            <property name="loginName" type="string">
                <column name="login_name" length="50" not-null="true">
                    <comment></comment>
                </column>
            </property>
            <property name="loginPass" type="string">
                <column name="login_pass" length="50" not-null="true">
                    <comment></comment>
                </column>
            </property>
            <property name="userAge" type="java.lang.Byte">
                <column name="user_age">
                    <comment></comment>
                </column>
            </property>
        </class>
    </hibernate-mapping>
      

  4.   

    我输入了一个英文的问号,和你那个明显不一样。
    // 查询语句
            StringBuffer hql = new StringBuffer();
            hql.append("      FROM UserInfo  ")
                 .append("     WHERE loginName = ?")
                 .append("       AND loginPass = ? ");        Object[] values = new Object[]{loginName, loginPass };
                    return (UserInfo)super.find(hql.toString(), values).get(0);这行也报异常,sql语句没有错