Я использую эти технологии для решения этой задачи: Java, Spring, Hibernate Например, если у меня есть 3 объекта: пользователь, компания, адрес
как обычно, я должен создать класс DaoImpl и интерфейс Dao:
interface Dao{
void saveUser(User user);
void saveCompany(Company company);
void saveAddress(Address address);
}
@Repository
public class DaoImpl extends HibernateDaoSupport implements Dao{
void SaveUser(User user){
getHibernateTemplate().save(user);
}
void SaveCompany(Company company){
getHibernateTemplate().save(company);
}
.
.
.
}
и здесь мы ищем для каждого save() он должен иметь свой собственный метод SaveCompany(), SaveUser(), SaveAddress()....
но что, если у нас есть сотни из них, удобно писать метод для каждого из них?
можем ли мы просто написать такой метод?
void save(Object obj){
getHibernateTemplate().save(obj);
}
Вы можете использовать шаблон, описанный здесь Generic Dao Pattern.
Основой использования общего DAO являются операции CRUD, которые вы можете выполнять на каждом объекте.
save
для ваших сущностей, который за кулисами вызываетgetHibernateTemplate().save(obj)
и настраиваемые методыsave
в слое обслуживания, только если должно существовать бизнес-правило для выполнения до или после сохранения сущности.