Java spring应用程序中dao中的泛型类型

Java spring应用程序中dao中的泛型类型,java,spring,mongodb,generics,morphia,Java,Spring,Mongodb,Generics,Morphia,我正在尝试使用morphia框架启动spring应用程序,以创建一些与mongodb一起工作的web应用程序 我有一些抽象的实体 公共抽象类AbstractEntity{ @身份证 受保护的对象id; //能手,二传手 } 对于这个抽象实体,我也有一些抽象道 公共抽象类AbstractDao扩展了BasicDAO{ 受保护的抽象DAO(Mongo Mongo,Morphia Morphia,String dbName){ 超级(mongo、morphia、dbName); } //一些方法 }

我正在尝试使用morphia框架启动spring应用程序,以创建一些与mongodb一起工作的web应用程序

我有一些抽象的实体

公共抽象类AbstractEntity{
@身份证
受保护的对象id;
//能手,二传手
}
对于这个抽象实体,我也有一些抽象道

公共抽象类AbstractDao扩展了BasicDAO{
受保护的抽象DAO(Mongo Mongo,Morphia Morphia,String dbName){
超级(mongo、morphia、dbName);
}
//一些方法
}
我还有一些抽象的动作

公共抽象类AbstractAction{
受保护的ActionType ActionType;
受保护的整数动态权重;
受保护日期;
//能手,二传手
}
我有一些更具体的实体,比如在列表中存储一些动作的动作实体

公共抽象类ActionEntity扩展了AbstractEntity{
受保护名单行动;
//能手,二传手
}
动作可以是喜欢、评论等,它们有自己的类,比如

公共类LikeAction扩展了AbstractAction实现了ICombinable{
受保护的ObjectId authord;
受保护的ObjectId sourceId;
//getter、setter和重写的equals();
}
最后,我有一个实体用于存储,例如,likes

像ActionEntity这样的公共类扩展了ActionEntity{
}
对于这样的实体,dao

像eactiondao这样的公共类扩展了AbstractDao{
受保护的LikeActionDao(Mongo Mongo、Morphia Morphia、String dbName){
超级(mongo、morphia、dbName);
}   
}
在应用程序上下文中,我有这样的bean


但当我试图运行spring应用程序时,我遇到了下一个异常

线程“main”org.springframework.beans.factory.BeanCreationException中的异常: 创建在类路径资源[app config.xml]中定义的名为“likeActionDao”的bean时出错:bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化bean类 [com.foo.app.dao.action.LikeActionDao]:构造函数引发异常;嵌套 异常为java.lang.RuntimeException:类型错误,未参数化


我做错了什么?

您的配置文件缺少数据库的配置

<bean class="java.lang.String" id="database">
     <constructor-arg value="database" /> </bean>

您可能需要为它定义一些值。

似乎这是morhia

尽量不要使用AbstractDao,直接从BasicDAO扩展您的LikeActionDao。
同时尝试使LikeActionEntity未参数化

好的,我正在从xml中删除LikeActionDAOBean,并尝试获取数据库bean,它可以正常工作