Въпрос относно hibernate-spring-dao

Имам DAO клас, който използвам, за да опитам да избера/актуализирам/вмъкна с хибернация и 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. Използвайки същата логика, как мога да получа лице по ID или да актуализирам лице. Сега мога да напиша и изтриване:

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 по ID, но не знам как. Благодаря ви (да, опитвам се да науча java-spring-hibernate, моля, улеснете се с мен)


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


Отговори (2)


Мисля, че това, което наистина питате (без да го осъзнавате), е „как да направя заявка за произволни полета без ID с 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