Java - Spring 数据访问对象实现

Java - Spring data access object implementation

在我当前的 spring 设置中,我想实现一个稍微不同的架构,这是我的设置:

我有一个 "base" DAO 接口,它列出了所有 CRUD 操作:

public interface BaseDao {

    public boolean create(Object obj);

    public List<Object> read();

    public boolean update(Object obj);

    public boolean delete(Object obj);

}

接下来我有 "specific" DAO 接口,它从 "base" 一个扩展而来:

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操作+"the methods from the specific dao-interface"

但是我收到以下错误:

ArticleDaoImpl is not abstract and does not override
abstract method delete(java.lang.Object) in BaseDao

等..

所以这可能是因为我在接口中将Object定义为参数,而在实际实现中将"Article"定义为参数..

有人知道我如何正确地遵循这个模式吗? 我应该考虑使用仿制药吗?

谢谢和问候

没有。您应该使用 Spring Data JPA/MongoDB 等。这将使您的大部分样板代码消失。说真的 - 忘记 DAO 并使用 Spring Data JPA:https://spring.io/guides/gs/accessing-data-jpa/