提示是sql语句的语法错误,你的hql被翻译成这样的sql了:
.admin admin0_ where admin0_.username='admin' and admin0_.password='admin
这不是合法的sql。你把select加上试试看

解决方案 »

  1.   

    q.setParameter(0, username);
                q.setParameter(1, password);        
    q.setString(0,username);这样就可以了.
      

  2.   

    奇怪的就是用mssql可以运行,mysql就出错,为什么hql会给翻译错了的呢?2楼的方法不行啊,还是错
      

  3.   

    from Admin a where a.username = ? and a.password = ?  我头一次见过这样的SQL语句 可能是我见识少 个人觉得 前面应该加上 select * 吧 直接from Admin 感觉SQL语句没写全!还有下面设置参数那里应该用
    q.setString(0,username);和q.setString(1,password);吧?个人看法 
      

  4.   

    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;已经说了,语法有错误。应该是你配置文件的问题。把配置文件贴上来看看
      

  5.   

               1 Query q = s.createQuery(str);
               2 q.setParameter(0, username);
               3 q.setParameter(1, password);  
    注意。参数还没加进去呢。就执行。顺序好像不对吧。
      

  6.   

    他的hql写的没错,代码也没什么问题
      

  7.   

    return getHibernateTemplate().find("from EmpworkInfo a where a.projectInfo.proId=? and  a.user.username = ? and a.workDate>=? and a.workDate<=? order by a.workDate desc",
         new Object[] {byreport.getProId(),byreport.getUsername(),byreport.getStartTime(),byreport.getEndTime()});我的是这样写的,后面用一个Object 数组传参!!
      

  8.   

    就是对于mysql翻译过来是错的 试试6楼的方法先吧
      

  9.   

    HQL本来就不需要写select 的  代码看看也没看出什么问题
    要么用
    StringBuffer str = new StringBuffer ();str.append(" from Admin a where a.username='");
    str.append(username);
    str.append("' and a.password ='");
    str.append(password);
    str.append("'");
    试试看吧
      

  10.   

    private static void addStudentIntoTeam(String tname){
    String hql = "from Student s where s.team is null";
    String hqlTwo = "from Team t where t.tname=?";
    Session session = HibernateSessionFactory.getSession();
    Transaction tx = session.beginTransaction();
    Query qTwo = session.createQuery(hqlTwo);
    qTwo.setString(0,tname);
    Team team = (Team)qTwo.uniqueResult();
    Query q = session.createQuery(hql);
    List students = q.list();
    for(Iterator it=students.iterator();it.hasNext();){
    Student student = (Student)it.next();
    System.out.println(student.getId());
    team.getStudents().add(student);
    session.update(team);
    }
    tx.commit();
    session.close();
    }
    我的数据库也是mysql,设置参数的方法也是差不多的。只不过我用的是setString()。没报错误呀
      

  11.   

    hibernate.cfg.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration><session-factory>
    <property name="myeclipse.connection.profile">bug</property>
    <property name="connection.url">
    jdbc:mysql://localhost:3306/bug
    </property>
    <property name="connection.username">root</property>
    <property name="connection.password">6331616</property>
    <property name="connection.driver_class">
    com.mysql.jdbc.Driver
    </property>
    <property name="dialect">
    org.hibernate.dialect.MySQLDialect
    </property>
    <mapping resource="bug/entity/Admin.hbm.xml" />
    <mapping resource="bug/entity/Buglist.hbm.xml" /></session-factory></hibernate-configuration>
      

  12.   

    如果用Mysql5的话,在配置文件中修改方言:org.hibernate.dialect.MySQL5Dialect
      

  13.   

    如果用Mysql5的话,在配置文件中修改方言:org.hibernate.dialect.MySQL5Dialect
      

  14.   

    str = " from Admin a where a.username = ? and a.password = ?";
    个人感觉问题现在在小写的a上。你把它改成这样;
    str = " from Admin  where Admin.username = ? and Admin.password = ?";
      

  15.   

    我学过一点Hibernate,从上面的代码来看肯定不会有错误。