Package pl.playbit.springhibernate.dao

Source Code of pl.playbit.springhibernate.dao.PersonDAOImpl

package pl.playbit.springhibernate.dao;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import pl.playbit.springhibernate.model.Person;

import java.util.List;

@Repository
public class PersonDAOImpl implements PersonDAO {

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public void addPerson(Person person) {
        sessionFactory.getCurrentSession().save(person);
    }

    @Override
    @SuppressWarnings("unchecked")
    public Person getPerson(long id) {
        Query query = sessionFactory.getCurrentSession().createQuery("from Person where id = :id");
        query.setParameter("id", id);
        return (Person) query.uniqueResult();
    }

    @Override
    public void removePerson(long id) {
        Person person = getPerson(id);
        sessionFactory.getCurrentSession().delete(person);
    }

    @Override
    public void updatePersonLastname(long id, String newLastname) {
        Person person = getPerson(id);
        person.setLastname(newLastname);
        sessionFactory.getCurrentSession().update(person);
    }

    @Override
    @SuppressWarnings("unchecked")
    public List<Person> getAllPersons() {
        return sessionFactory.getCurrentSession().createQuery("from Person").list();
    }

    @Override
    @SuppressWarnings("unchecked")
    public List<Person> getAllPersonsWithLastname(String lastname) {
        Query query = sessionFactory.getCurrentSession().createQuery("from Person where lastname = :lastname");
        query.setParameter("lastname", lastname);
        return query.list();
    }

}
TOP

Related Classes of pl.playbit.springhibernate.dao.PersonDAOImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.