//Hibernate查询
@Repository("crb_bgkDao")
public class Crb_bgkDaoImpl extends BaseDaoImpl<Crb_bgk> implements ICrb_bgkDao {
@Override
public PageInfo<Crb_bgk> queryByPersonAndHospital(PageInfo<Crb_bgk> pageInfo,
Hospital hospital, Person person, String bqfl) {
DetachedCriteria detached = DetachedCriteria.forClass(entityClass);
//取别名
DetachedCriteria detachedPage = DetachedCriteria.forClass(entityClass);
detached.createAlias("person", "p");
detached.createAlias("hospital", "h");
detachedPage.createAlias("person", "p");
detachedPage.createAlias("hospital", "h");
try {
//根据医院查询
if (hospital != null && hospital.getHospitalId() != null
&& !"".equals(hospital.getHospitalId())) {
detached.add(Restrictions.eq("h.hospitalId", hospital.getHospitalId()));
detachedPage.add(Restrictions.eq("h.hospitalId", hospital.getHospitalId()));
//根据个人信息查询
if (person != null) {
//姓名
if (person.getName() != null && !"".equals(person.getName())) {
detached.add(Restrictions.ilike("p.name", person.getName(), MatchMode.ANYWHERE));
detachedPage.add(Restrictions.ilike("p.name", person.getName(), MatchMode.ANYWHERE));
}
//身份证
if (person.getCardNumber() != null && !"".equals(person.getCardNumber())) {
detached.add(Restrictions.eq("p.cardNumber", person.getCardNumber()));
detachedPage.add(Restrictions.eq("p.cardNumber", person.getCardNumber()));
}
}
//病情分类:8--艾滋病;9--寄生虫;7--其他传染病
if (bqfl != null && !"".equals(bqfl)) {
if ("8".equals(bqfl.trim())) {
detached.add(Restrictions.like("crb_yl", "8", MatchMode.ANYWHERE));
detachedPage.add(Restrictions.like("crb_yl", "8", MatchMode.ANYWHERE));
}
else if ("9".equals(bqfl.trim())) {
detached.add(
//“或”查询
Restrictions.or(
Restrictions.like("crb_yl", "9", MatchMode.ANYWHERE),
Restrictions.like("crb_bl", "9", MatchMode.ANYWHERE)
)
);
detachedPage.add(
Restrictions.or(
Restrictions.like("crb_yl", "9", MatchMode.ANYWHERE),
Restrictions.like("crb_bl", "9", MatchMode.ANYWHERE)
)
);
}
else if ("7".equals(bqfl.trim())) {
//根据判断字段是否为空查询
detached.add(Restrictions.isNotNull("qtcrb"));
detachedPage.add(Restrictions.isNotNull("qtcrb"));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
pageInfo.setData(this.getHibernateTemplate().findByCriteria(detached,
pageInfo.getCurrentPage() * pageInfo.getPageSize(), pageInfo.getPageSize()));
pageInfo.setPageRow(queryByRowNumber(detachedPage));
return pageInfo;
}
分享到:
相关推荐
根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...
【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,从而避免了传统的JDBC编码方式带来的复杂性。本篇文章将...
1. HQL查询: HQL是一种面向对象的查询语言,类似于SQL。要查询`username`字段,可以编写如下HQL: ```java String hql = "SELECT username FROM User"; Query query = session.createQuery(hql); List<String> ...
### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的企业级应用。本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有...
### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...
利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~
Hibernate分页查询小结
本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板引擎来生成执行的SQL语句。 一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。...
Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...
在深入探讨Hibernate查询缓存之前,我们先了解一下Hibernate的基础概念。Hibernate是一个强大的Java持久化框架,它简化了数据库操作,提供了对象关系映射(ORM)功能。在Hibernate中,对象的状态分为瞬时态、持久态...
本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...
最后,`hibernate查询`这个压缩包可能包含了一些示例代码和配置文件,用于演示如何在Java项目中实现上述查询方式。通过分析这些文件,你可以更好地理解Hibernate查询的工作原理,并将其应用到自己的项目中。 总之,...
1. Hibernate Criteria API: Criteria API 是Hibernate提供的一种面向对象的查询方式,它允许开发者通过构建对象来表示查询条件,而不是直接编写SQL语句。这种查询方式更加符合面向对象编程的思想,降低了SQL语句的...
本文将深入探讨在使用Hibernate进行MySQL查询时的一些关键知识点,以帮助开发者更好地理解和应用这些技术。 首先,我们需要理解Hibernate的核心概念。Hibernate通过提供一个中间层,将Java对象与数据库表进行映射,...
### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...
标题“hibernate的多态查询”指的是在Hibernate框架中,如何进行涉及不同子类的对象查询,这是ORM(对象关系映射)中的一个重要特性,旨在提高代码的灵活性和可扩展性。多态查询允许我们编写一次查询,而无需关心...
总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...
1. **HQL(Hibernate Query Language)**: 类似于SQL的面向对象的查询语言,可以查询对象而非表。 2. **Criteria API**: 提供更动态的查询方式,无需预先写好查询字符串,可根据条件动态构建查询。 3. **QBC ...
query.addScalar("t2.column1", Hibernate.STRING); query.addScalar("t2.column2", Hibernate.INTEGER); List[]> objects = query.list(); ``` 以上代码会返回一个Object数组列表,每个数组元素对应一条记录,需要...