本帖最后由 ljt122000 于 2010-02-22 22:59:58 编辑

解决方案 »

  1.   

    List list = ht.find("select * from Student"); 
     好像不能这样写吧,不能带select ,要不会变成select * from select * from 
      

  2.   

    能这样写,查出来还是个List,就是和不写select时得到到List不一样..
      

  3.   

    1、
    第一个问题在我这没有出现
    可能是因为版本问题?或者是环境问题?2、List list = ht.find("select s.name from Student s")
    字段名要和Student中的映射字段名一致  不要写数据库中的字段名3、查询出来的是Object类型数组 遍历数组就可以读取4、调用存储过程要更改配置文件 
    请参考 http://www.diybl.com/course/3_program/java/javajs/20090327/163627.html
      

  4.   

    1、两种写法是一样的。。都可以查出来。得到的是list。。直接用for循环遍历。不用iterator2、List list = ht.find("select s.name from Student s"); 
      

  5.   

    第一个我出现很多次了,有一种是不能用iterator在前台便利的.
    第二个与第一个很像,只要第一个解决了就和行了
    后台能用object数组读出来.前台怎么显示呢?
    是不是配置一下,给他指定一个返回类型,设置过程名?
      

  6.   


    List<Student> list = ht.find("select s.name from Student s") 这样得到的就是一个封装了Student对象的list了啊前台,只要在Struts1的action中将这个list放到request里面,struts2直接写list的getset方法,然后就可以在前台得到。前台遍历用c:forEach标签
      

  7.   

    1、
    没发现这个问题2、List list = ht.find("select s.name from Student s")
    这个name要和你类里面的那个属性名一样3、查询出来的是Object类型数组 遍历数组就可以读取4、不知道你是用的什么数据库,我用命名查询调用oracle的存储过程也不行
    命名查询的话是能够调用的一下是我的一个成功的例子
    Query query = getSession().getNamedQuery("procName");
    query.setParameter("a", "a");
    List<E> list = query.list();
     return list;
    hibernate配置文件
    <hibernate-mapping><class name="com.class" table="tablename" lazy="false" >
     <id name="Id" type="java.lang.Long">
                <column name="personId" precision="10" scale="0" />
            </id>
            <property name="a" type="java.lang.String" column="a" />

        </class>
      <sql-query name="test" callable="true">
      {call   procname(:result )}  
      </sql-query></hibernate-mapping>