【发布时间】:2016-11-23 19:06:18
【问题描述】:
在我当前的 spring 设置中,我想实现一个稍微不同的架构,这是我的设置:
我有一个“基础”DAO 接口,它列出了所有 CRUD 操作:
public interface BaseDao {
public boolean create(Object obj);
public List<Object> read();
public boolean update(Object obj);
public boolean delete(Object obj);
}
接下来我有“特定”DAO 接口,它从“基础”接口扩展:
public interface ArticleDao extends BaseDao {
public List<Article> getArticlesByAttribute(String attribute);
}
最后是实现接口的存储库:
public class ArticleDaoImpl implements ArticleDao {
public boolean create(Article article) {
// code
}
public List<Article> read() {
// code
}
public boolean update(Article article) {
// code
}
public boolean delete(Article article) {
// code
}
public List<Article> getArticlesByAttribute(String attribute) {
// code
}
}
所以这个想法很简单:
我希望每个 Repository 都实现所有 crud 操作 +“来自特定 dao 接口的方法”
但我收到以下错误:
ArticleDaoImpl is not abstract and does not override
abstract method delete(java.lang.Object) in BaseDao
等等。
所以这可能是因为我在接口中将Object定义为参数,而在实际实现中将“Article”定义为参数..
有人知道我如何正确地遵循这种模式吗? 我应该考虑使用泛型吗?
感谢和问候
【问题讨论】:
标签: java spring interface dao implementation