hibernate使用criteria进行子查询并分页(无外键关联)
背景:
- 有一张活动表(volunteer_activity)
- 和一张活动报名表(volunteer_sign_up)–存放志愿者活动报名记录
代码:
@Override
public PageBean findAllVolunteerJoinActivity(String key, PageBean<VolunteerActivityEntity> setPageSize, String userId) {
Session session = sessionFactory.openSession();
/**
* hibernate 利用子查询实现 exists 功能
*/
Criteria criteria = session.createCriteria(VolunteerActivityEntity.class, "activity");
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(VolunteerSignUpEntity.class,"signUp");
detachedCriteria.add(Restrictions.eq("volunteerId", userId));
detachedCriteria.add(Property.forName("activity.activityId").eqProperty("signUp.ac