Вопрос о спячке-весна-дао - PullRequest
2 голосов
/ 05 марта 2010

У меня есть класс 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. Используя ту же логику, как я могу получить человека по идентификатору или обновить человека. Теперь я могу также написать удалить:

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;
        }
    }

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

Ответы [ 2 ]

1 голос
/ 06 марта 2010

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

public void updatePeople(Long id, String surname) {
    People p = getHibernateTemplate().get(People.class, id)
    p.setSurname(surname);
    getHibernateTemplate().update(p);
}
0 голосов
/ 05 марта 2010

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

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

...