DetachedCriteria 实现多表关联,检索条件
2016-06-08 17:24
387 查看
[java]
view plain
copy
print?
DetachedCriteria queryCriteria = DetachedCriteria.forClass(Rsvmain.class);
if (ObjectUtils.isNotEmpty(query.getUnitinfoName())) {
DetachedCriteria unitinfo = DetachedCriteria.forClass(Unitinfo.class);
unitinfo.add(Restrictions.like("unitnm", "%" + query.getUnitinfoName() + "%"));
unitinfo.setProjection(Property.forName("id"));
queryCriteria.add(Property.forName("unitinfoId").in(unitinfo));
}
if (ObjectUtils.isNotEmpty(query.getMemberName())) {
DetachedCriteria member = DetachedCriteria.forClass(Member.class);
member.add(Restrictions.disjunction()
.add(Restrictions.like("lastnm", "%" + query.getMemberName() + "%"))
.add(Restrictions.like("firstnm", "%" + query.getMemberName() + "%"))
.add(Restrictions.like("altnm", "%" + query.getMemberName() + "%")));
member.setProjection(Property.forName("id"));
queryCriteria.add(Property.forName("memberId").in(member));
}
if (ObjectUtils.isNotEmpty(query.getStartdt()) || ObjectUtils.isNotEmpty(query.getEnddt())) {
DetachedCriteria rsvdtl = DetachedCriteria.forClass(Rsvdtl.class);
if (ObjectUtils.isNotEmpty(query.getStartdt())) {
rsvdtl.add(Restrictions.ge("cidt", query.getStartdt()));
}
if (ObjectUtils.isNotEmpty(query.getEnddt())) {
rsvdtl.add(Restrictions.le("codt", query.getEnddt()));
}
rsvdtl.setProjection(Property.forName("rsvmainId"));
queryCriteria.add(Property.forName("id").in(rsvdtl));
}
view plain
copy
print?
DetachedCriteria queryCriteria = DetachedCriteria.forClass(Rsvmain.class);
if (ObjectUtils.isNotEmpty(query.getUnitinfoName())) {
DetachedCriteria unitinfo = DetachedCriteria.forClass(Unitinfo.class);
unitinfo.add(Restrictions.like("unitnm", "%" + query.getUnitinfoName() + "%"));
unitinfo.setProjection(Property.forName("id"));
queryCriteria.add(Property.forName("unitinfoId").in(unitinfo));
}
if (ObjectUtils.isNotEmpty(query.getMemberName())) {
DetachedCriteria member = DetachedCriteria.forClass(Member.class);
member.add(Restrictions.disjunction()
.add(Restrictions.like("lastnm", "%" + query.getMemberName() + "%"))
.add(Restrictions.like("firstnm", "%" + query.getMemberName() + "%"))
.add(Restrictions.like("altnm", "%" + query.getMemberName() + "%")));
member.setProjection(Property.forName("id"));
queryCriteria.add(Property.forName("memberId").in(member));
}
if (ObjectUtils.isNotEmpty(query.getStartdt()) || ObjectUtils.isNotEmpty(query.getEnddt())) {
DetachedCriteria rsvdtl = DetachedCriteria.forClass(Rsvdtl.class);
if (ObjectUtils.isNotEmpty(query.getStartdt())) {
rsvdtl.add(Restrictions.ge("cidt", query.getStartdt()));
}
if (ObjectUtils.isNotEmpty(query.getEnddt())) {
rsvdtl.add(Restrictions.le("codt", query.getEnddt()));
}
rsvdtl.setProjection(Property.forName("rsvmainId"));
queryCriteria.add(Property.forName("id").in(rsvdtl));
}
相关文章推荐
- iOS-OC-tableview SDWebImage加载多张图片内存警告(received memory warning)
- 高德地图定位加地图定位当前位置 设置缩放比例
- ListView(Stickey)
- Exception in thread "main" org.hibernate.exception.GenericJDBCException: Field 'bookname' doesn't ha
- sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
- if
- 搭建gmaping建图环境
- POJ2286 The Rotation Game
- eclipse使用tomcat进行部署时编译代码不一致的处理
- vim配置
- expect 切换用户后自动执行shell命令
- CSS3中的display: box
- shell变量
- 简单的屏幕弹幕功能的实现(原创)
- 编程进阶
- Attributes:文本属性 和NSAttributedString
- 关于数据权限设计的一些想法
- STL--vertor、map
- Rundeck任务自动化发布系统部署与配置
- Java BIO、NIO、AIO