public class AcademyClassHibernateRepoImpl implements AcademyClassHibernateRepo {
@PersistenceContext
private EntityManager em;
@Override
public List<AcademyClass> findAll() {
DetachedCriteria dc = DetachedCriteria.forClass(AcademyClass.class);
Criteria c= dc.getExecutableCriteria(getHibernateSession(entityManager));
c.createAlias("timeSlots", "timeSlot", JoinType.LEFT_OUTER_JOIN);
c.addOrder(Order.asc("timeSlot.startDateTime"));
return c.list();
}
private static Session getHibernateSession(EntityManager em) {
return (Session) em.getDelegate();
}
}