以下是代码:
public User get(User user) {
System.out.println(user.getUserName()+"   "+user.getPassword());
List<User> list=(List<User>)this.getHibernateTemplate().find("from User u where u.userName=? and u.password=?",new Object[]{user.getUserName(),user.getPassword()});
if(0!=list.size()){
   User u=list.get(0);
   return u;
}else{
return null;
}
}
执行上面语句生成的sql为:
select user0_.id as id0_, user0_.username as username0_, user0_.password as password0_ from tt_user user0_ where user0_.username=? and user0_.password=?把上面sql语句加上?参数放到pl/sql上可以从oracle数据库查出一条结果,但是上面的程序执行find方法结果list为空;为什么呢?

解决方案 »

  1.   

    user.hbm.<?xml version="1.0" encoding="utf-8"?>
     <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
     <hibernate-mapping package="com.ls.vo">
        <class name="User" table="tt_user">
          <id name="id">
           <generator class="native"></generator>
          </id>
          <property name="userName" column="username" not-null="true" unique="true"></property>
          <property name="password" column="password" not-null="true"></property>
        </class>
     </hibernate-mapping>映射文件不会有错吧??
      

  2.   

    自己解决了,问题是user.hbm.xml  user的u要大写,User.hbm.xml
      

  3.   

    你的映射文件是自个写的吧?为什么不用hibernate自动生成呢?那样多块,也不会出错。顺便提一下,我可用分不多了,这分都给我吧,呵呵。