Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. Teams findTeams()
  2.  
  3. @Autowired private SessionFactory sessionFactory;
  4. ...
  5. @Override
  6. public Teams getTeams() {
  7. return new HibernateTeams(sessionFactory);
  8. }
  9.  
  10. public interface Teams extends Iterable<Team> {
  11.  
  12. Teams withNameContaining(String name);
  13. Teams withRatingGreaterThan(Integer rating);
  14. }
  15.  
  16. public class HibernateTeams implements Teams {
  17.  
  18. private static final String NAME_PROPERTY = "name";
  19. private static final String RATING_PROPERTY = "rating";
  20.  
  21. private SessionFactory sessionFactory;
  22.  
  23. private Criteria criteria;
  24.  
  25. public HibernateTeams(SessionFactory sessionFactory) {
  26. this.sessionFactory = sessionFactory;
  27. criteria = getRootCriteria();
  28. }
  29.  
  30. private Criteria getRootCriteria() {
  31. return getCurrentSession().createCriteria(Team.class);
  32. }
  33.  
  34. @Override
  35. public HibernateTeams withNameContaining(String name) {
  36. criteria.add(Restrictions.like(NAME_PROPERTY, name));
  37. return this;
  38. }
  39.  
  40. @Override
  41. public Teams withRatingGreaterThan(Integer rating) {
  42. criteria.add(Restrictions.gt(RATING_PROPERTY, rating));
  43. return this;
  44. }
  45.  
  46. @Override
  47. public Iterator<Team> iterator() {
  48. @SuppressWarnings("unchecked")
  49. Collection<Team> result = criteria.list();
  50. return result.iterator();
  51. }
  52.  
  53. private Session getCurrentSession() {
  54. return sessionFactory.getCurrentSession();
  55. }
  56. }
  57.  
  58. teamService
  59. .getTeams()
  60. .withNameContaining("someTeamName")
  61. .withRatingGreaterThan(15)
  62.  
  63. org.hibernate.SessionException: Session is closed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement