Привет всем, вот мой класс DAO:
public class UsersDAO extends HibernateDaoSupport {
private static final Log log = LogFactory.getLog(UsersDAO.class);
protected void initDao() {
//do nothing
}
public void save(User transientInstance) {
log.debug("saving Users instance");
try {
getHibernateTemplate().saveOrUpdate(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
public void update(User transientInstance) {
log.debug("updating User instance");
try {
getHibernateTemplate().update(transientInstance);
log.debug("update successful");
} catch (RuntimeException re) {
log.error("update failed", re);
throw re;
}
}
public void delete(User persistentInstance) {
log.debug("deleting Users instance");
try {
getHibernateTemplate().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
public User findById( java.lang.Integer id) {
log.debug("getting Users instance with id: " + id);
try {
User instance = (User) getHibernateTemplate()
.get("project.hibernate.Users", id);
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
}
Теперь я написал тестовый класс (не тест junit), чтобы проверить, все ли работает, у моего пользователя есть следующие поля в базе данных: userID, длина которого 5 символов, уникальный / первичный ключ, а также такие поля, как address, dob и т. Д. (всего 15 столбцов в таблице базы данных). Теперь в моем тестовом классе я заинтригован, Пользователь добавил значения как:
User user = new User;
user.setAddress("some address");
и так я сделал для всех 15 полей, чем в конце назначения данных для объекта User, который я вызвал в DAO, чтобы сохранить их в базе данных UsersDao.save(user);
и сохранить, работает просто отлично. Мой вопрос: как обновить / удалить пользователей, используя ту же логику?
Пример Fox, я попытался (чтобы удалить пользователя из таблицы пользователей):
User user = new User;
user.setUserID("1s54f"); // which is unique key for users no two keys are the same
UsersDao.delete(user);
Я хотел удалить пользователя с этим ключом, но он явно другой, может кто-нибудь объяснить, пожалуйста, как это сделать. спасибо
ОБНОВЛЕНИЕ:
Нужно ли мне устанавливать все 15 полей в объекте User, чтобы удалить его, как я это сделал с методом сохранения?