В моей текущей установки пружинного я хотел бы реализовать несколько иную архитектуру, здесь моя установка:Java - 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);
}
Далее я есть "специфическое" ДАО интерфейс, который простирается от "базы" один:
public interface ArticleDao extends BaseDao {
public List<Article> getArticlesByAttribute(String attribute);
}
И, наконец, Repository, который реализует интерфейс:
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 + «Методы от конкретного дао-интерфейса»
Но я получаю следующее сообщение об ошибке:
ArticleDaoImpl is not abstract and does not override
abstract method delete(java.lang.Object) in BaseDao
и т.д ..
так что это, возможно, потому, что я определен объект как пункт метр в интерфейсе и «Статья» в качестве параметра в фактической реализации.
Кто-нибудь понял, как я могу правильно следовать этому шаблону? Должен ли я рассматривать работу с дженериками?
Спасибо и привет
просто отличное решение, спасибо :) –
Не нужно изобретать колесо;) –
mhm, но как насчет спящего режима, как я могу интегрировать его в этом контексте? Я имею в виду, я установил hibernate только для запроса/сохранения данных, мне даже нужно это сейчас? –