package org.springframework.issues.repository.impl;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.issues.domain.User;
import org.springframework.issues.repository.UserRepository;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class HibernateUserRepository implements UserRepository {
private SessionFactory sessionFactory;
public HibernateUserRepository(SessionFactory sessionFactory) {
super();
this.sessionFactory = sessionFactory;
}
public void addUser(User user) {
this.sessionFactory.getCurrentSession().merge(user);
}
public User getUser(long id) {
return (User) this.sessionFactory.getCurrentSession().get(User.class,
id);
}
public void updateUser(User user) {
this.sessionFactory.getCurrentSession().merge(user);
}
@SuppressWarnings("unchecked")
public List<User> getAllUsers() {
return this.sessionFactory.getCurrentSession()
.getNamedQuery(User.QUERY_ALL_USERS).list();
}
}