但是把hibernate生成的语句放到plsql里执行是有结果的。求大神解决,在线等public User checkUser(final User user){
return (User) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
// TODO Auto-generated method stub
Query query = session.createQuery("from User where username = ? and password = ?");
query.setString(0, user.getUsername());
query.setString(1, user.getPassword());
return query.uniqueResult();
}
});
}

解决方案 »

  1.   

    是不是连接池或连接字符串配置错了。
    简单的查询sql是通用的,可是连接方式或者驱动包,不同数据库对应不同的。
    最简单mysql的端口3306,而oracle是1521
      

  2.   

    这是User.hbm.xml文件,<class name="Diary" table="Diary">
    <id name="id" type="java.lang.Integer">
     <generator class="native"/>
    </id>
    <property name="title" type="string" column="title" />
    <property name="type" type="string" column="type" />
    <property name="weather" type="string" column="weather" />
    <property name="content" type="string" column="content" />
    <property name="createDate" type="string" column="createDate" />
    <property name="lastChangeDate" type="string" column="lastChangeDate" />
    </class>
      

  3.   

    是不是检索null,强转user出错?
      

  4.   

    检索出null,系统没有报错。只是当null进行了下一步
      

  5.   

    你得看看你的query里面有啥才行
      

  6.   

    public User checkUser(User user){
    (User) getHibernateTemplate().execute(new HibernateCallback() {
                public Object doInHibernate(Session session) throws HibernateException,
                        SQLException {
                    // TODO Auto-generated method stub
                    Query query = session.createQuery("from User where username = ? and password = ?");
                    query.setString(0, user.getUsername());
                    query.setString(1, user.getPassword());
                    User  users =(User) query.uniqueResult();
                }
            });
        }这样试试