Вопрос о hibernate-spring-dao

У меня есть класс DAO, который я использую, чтобы попытаться выбрать/обновить/вставить с базой данных hibernate и Mysql. Сейчас я пишу методы для них, я уже написал вот такую ​​вставку:

public Long save(People transientInstance) {
        log.debug("Saving People instance");
        try {
            Long id = (Long)getHibernateTemplate().save(transientInstance);
            log.debug("save successful with id #" + id);
            return id;
        } catch (RuntimeException re) {
            log.error("save failed", re);
            throw re;
        }
    }

У меня есть 3 столбца, один id, второй name, третий surname. Используя ту же логику, как я могу получить человека по идентификатору или обновить человека. Теперь я также могу написать delete :

public void delete(People persistentInstance) {
        log.debug("deleting People instance");
        try {
            getHibernateTemplate().delete(persistentInstance);
            log.debug("delete successful");
        } catch (RuntimeException re) {
            log.error("delete failed", re);
            throw re;
        }
    }

Я мог бы удалить или обновить, если бы мог получить объект «Люди» по идентификатору, но я не знаю, как это сделать. Спасибо (да, я пытаюсь изучить java-spring-hibernate, полегче со мной, пожалуйста)


person ant    schedule 05.03.2010    source источник


Ответы (2)


Я думаю, что вы действительно спрашиваете (не осознавая этого), «как мне запросить произвольные поля без идентификатора с помощью Hibernate?».

Вам следует взглянуть на главу в справочном руководстве. об использовании HQL (Hibernate Query Language), который позволит вам это сделать.

person matt b    schedule 05.03.2010
comment
@matt b Я прошел через это и все еще ничего .. может быть, вы что-то еще с нуля .. это кажется мне довольно продвинутым - person ant; 08.03.2010

Похоже, вы хотите сделать что-то вроде этого:

public void updatePeople(Long id, String surname) {
    People p = getHibernateTemplate().get(People.class, id)
    p.setSurname(surname);
    getHibernateTemplate().update(p);
}
person codefinger    schedule 06.03.2010