我试图在项目中使用GenericDAO:
public class GenericDao<T> {
ApplicationContext ctx =
new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
public void save(T t) {
mongoOperation.save(t);
}
public void delete(final T t) {
mongoOperation.remove(t);
}
}
子类NoteDAO扩展了GenericDao,不需要覆盖保存/删除方法。但是,当我尝试使用它们时,我得到:
java.lang.NoSuchMethodError: com.example.dao.NoteDAO.save(Lcom/example/model/Note;)V
这是我的NoteDAO,它是空的:
public class NoteDAO extends GenericDao<Note> {
public static Logger LOG = Logger.getLogger(NoteDAO.class);
public static int counter = 0;
}
为什么它不起作用?
答案 0 :(得分:0)
该问题的一个可能解决方案是向NoteDAO添加一个无参数构造函数。
答案 1 :(得分:0)
我试图复制你的场景,它对我有用......看看你是否有某种代码:
package com.x.y;
public class GenericDAO<T> {
public void save(T t) {
System.out.println("Generic Save");
}
public void delete(final T t) {
System.out.println("Generic Delete");
}
}
package com.x.y;
public class NoteDAO extends GenericDAO<Note> {
public void persist(){
save(new Note());
}
}
package com.x.y;
public class Client {
public static void main(String[] args) {
NoteDAO nDao = new NoteDAO();
nDao.save(new Note());
}
}
因此,当我运行客户端时,它会打印:&#34; Generic Save&#34;。
试着帮助你。