Have finally been able to solve my issue regarding getting a restricted set of association instead of the whole association. Hope the below code snippet helps.
Criteria criteria1 = session.createCriteria(Customer.class).
add(Restrictions.like("customerName", "Rahul%"));`
Criteria criteria = criteria1.createCriteria("orders","order").add(Restrictions.like("orderDescription","electronics%")).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);//order is alias to orders collection
List<Map> list = criteria.list();
Using the setResultTransformer we get a List of Map which contains the result of the inner join instead of the more traditional List of Customer.
for(Iterator itr = list.iterator();itr.hasNext();){
Map map = (Map)itr.next();
Customer student = (Customer) map.get(Criteria.ROOT_ALIAS);
Order order = (Order) map.get("order");//alias that was used earlier for orders
}