ssh整合后使用了<范型>dao,用dwr(就是ajax)取不到数据库的数据了,请大家帮忙想个办法。
(注:项目除了ajax取不到数据,其他的都是好的)project部分结构
    com.company.entity(包)--hibernate自动生成的实体和hbm文件
    com.company.dao--接口
                 接口dao.java是其他普通接口的上层接口(就是其他的interface都要继承dao.java)
         com.company.dao.hibernate--dao的实现类 
                 有一个实现dao.java的抽象类abstractdaohibernate.java 其他的实现类都要继承他
    com.company.service--接口
         com.company.service.impl--实现类    web.xml和applicationContext.xml的配置都是按老师讲得来的
    dwr.xml--我是按记忆写的,可能一些单词错了,不过在eclipse上是不会错的(来网吧上一次网真是不容易……)
    <allow>
       <convert match="com.company.entity.*" converter="bean"/>
       <create javascript="service" creator="spring">
          <param name="beanName" value="userService">
       </create>
    </allow>在debug页面点击 findAll()就出来个null
配置方面应该不会错的,我用hibernate自动生成dao的方式,ajax取数据就一点问题没有,用了范型dao就出问题了
暂时的解决方案是:要用ajax就不用范型dao
目前正在搜寻解决办法中……
请大家帮帮忙,谢谢……

解决方案 »

  1.   

    好像是用泛型要传一个实体类进去啊
    而你用ajax没传
    你可以把你ajax要用的方法提出来啊
    然后把dao得操作写在里面
      

  2.   

    应该是实体类的问题,用了范型就要实体
    interface Dao<Entity,Id   >{}
    interface UserDao extends Dao<User,String>{}
    abstract AbstractDaoHibernate implements Dao{}
    class UserDaoHibernate extends AbstractDaoHibernate<User,String> implements UserDao{}用userService  的方法其实就是UserDaoHibernate 里的方法
    比如说用findAll()方法<script ...>
     service.findAll(function(data){alert(data);});
    </script>那要怎么传递实体呢,
    还是说在UserDaoHibernate里再写一个方法(比如findB(){实体之类的需要的东西都写在里面}然后调用findB()方法)呢
      

  3.   

    一、在浏览器输入ajax调用的后台代码,判断后台代码是否正确
    二、若一不正确,修改后台代码,若正确,判断js函数是否触发
      

  4.   

    haha
    我只能多谢大家 来参与 关注 啊
    是我自己太笨啊,ajax取数据 根本不管泛型dao 什么事(只要配置没错就不会出错)需要注意的是 :用ajax就别想要 延迟加载 了(可以想其他办法)
    我那个不能取数据的问题 是因为在   实体类User里有一个Set集合(one to many), 在配置转换器的时候把它去掉就ok了
    <convert match="com.company.entity.*" converter="bean">
        <param name="exclude" value="set">
    </convert>