Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Teams findTeams()
- @Autowired private SessionFactory sessionFactory;
- ...
- @Override
- public Teams getTeams() {
- return new HibernateTeams(sessionFactory);
- }
- public interface Teams extends Iterable<Team> {
- Teams withNameContaining(String name);
- Teams withRatingGreaterThan(Integer rating);
- }
- public class HibernateTeams implements Teams {
- private static final String NAME_PROPERTY = "name";
- private static final String RATING_PROPERTY = "rating";
- private SessionFactory sessionFactory;
- private Criteria criteria;
- public HibernateTeams(SessionFactory sessionFactory) {
- this.sessionFactory = sessionFactory;
- criteria = getRootCriteria();
- }
- private Criteria getRootCriteria() {
- return getCurrentSession().createCriteria(Team.class);
- }
- @Override
- public HibernateTeams withNameContaining(String name) {
- criteria.add(Restrictions.like(NAME_PROPERTY, name));
- return this;
- }
- @Override
- public Teams withRatingGreaterThan(Integer rating) {
- criteria.add(Restrictions.gt(RATING_PROPERTY, rating));
- return this;
- }
- @Override
- public Iterator<Team> iterator() {
- @SuppressWarnings("unchecked")
- Collection<Team> result = criteria.list();
- return result.iterator();
- }
- private Session getCurrentSession() {
- return sessionFactory.getCurrentSession();
- }
- }
- teamService
- .getTeams()
- .withNameContaining("someTeamName")
- .withRatingGreaterThan(15)
- org.hibernate.SessionException: Session is closed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement