`

Hibernate查询2

 
阅读更多

//between  and

@Override
public PageInfo<T> queryInfoAndLikes(PageInfo<T> pageInfo,
			Map<String, String> map, String propertyName, Object minObject,
			Object maxObject) throws DataAccessException {
		if (pageInfo == null) {
			pageInfo = new PageInfo<T>();
		}
		DetachedCriteria detached = DetachedCriteria.forClass(entityClass);
		DetachedCriteria detachedPage = DetachedCriteria.forClass(entityClass);
		for (Map.Entry<String, String> en:map.entrySet()) {
			detached.add(Restrictions.like(en.getKey(),en.getValue(), MatchMode.ANYWHERE));
			detachedPage.add(Restrictions.like(en.getKey(),en.getValue(), MatchMode.ANYWHERE));
		}
		detached.add(Restrictions.between(propertyName, minObject, maxObject));
		detachedPage.add(Restrictions.between(propertyName, minObject, maxObject));
		pageInfo.setPageRow(queryByRowNumber(detachedPage));
		pageInfo.setData(this.getHibernateTemplate().findByCriteria(detached, 
				pageInfo.getCurrentPage() * pageInfo.getPageSize(), pageInfo.getPageSize()));
		return pageInfo;
	}



//外连接,别名
@Repository("organizationDao")
public class OrganizationDaoImpl extends BaseDaoImpl<Organization> implements IOrganizationDao {

	@Override
	public PageInfo<Organization> querySelfUser(PageInfo<Organization> pageInfo,
			Map<String, String> map, Map<String, Object> andEqual,
			Map<String, String> alias, String orKey1, Object value1,
			String orKey2, Object value2) {
		if (pageInfo == null) {
			pageInfo = new PageInfo<Organization>();
		}
		DetachedCriteria detached = DetachedCriteria.forClass(entityClass);
		DetachedCriteria detachedPage = DetachedCriteria.forClass(entityClass);
		if (alias != null) {
			for (Map.Entry<String,String> en:alias.entrySet()) {
				detached.createAlias(en.getKey(), en.getValue());
				detachedPage.createAlias(en.getKey(), en.getValue() ,Criteria.LEFT_JOIN);
			}
		}
		if (orKey1 != null) {
			detached.add(Restrictions.disjunction().add(Restrictions.or(
					Restrictions.eq(orKey1, value1), 
					Restrictions.eq(orKey2, value2)
					)));
			detachedPage.add(Restrictions.disjunction().add(Restrictions.or(
					Restrictions.eq(orKey1, value1), 
					Restrictions.eq(orKey2, value2)
					)));
		}
		for (Map.Entry<String, String> en:map.entrySet()) {
			detached.add(Restrictions.like(en.getKey(),en.getValue(), MatchMode.ANYWHERE));
			detachedPage.add(Restrictions.like(en.getKey(),en.getValue(), MatchMode.ANYWHERE));
		}
		for (Map.Entry<String, Object> en:andEqual.entrySet()) {
		  detached.add(Restrictions.eq(en.getKey(),en.getValue()));
		  detachedPage.add(Restrictions.eq(en.getKey(),en.getValue()));
		}
		//detached.addOrder(Order.asc("organizationId"));
		
		pageInfo.setPageRow(queryByRowNumber(detachedPage));
		pageInfo.setData(this.getHibernateTemplate().findByCriteria(detached, 
		pageInfo.getCurrentPage() * pageInfo.getPageSize(), pageInfo.getPageSize()));
		return pageInfo;

	}




分享到:
评论

相关推荐

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    通用的hibernate查询

    【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,从而避免了传统的JDBC编码方式带来的复杂性。本篇文章将...

    Hibernate_query查询数据表中的一个字段.

    2. Criteria查询: Criteria API 提供了一种类型安全的方式来进行查询。使用Criteria,你可以动态地构建查询,如下: ```java Criteria criteria = session.createCriteria(User.class); criteria.setProjection...

    struts+hibernate查询所有记录

    ### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的企业级应用。本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有...

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...

    Hibernate查询练习小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~

    Hibernate分页查询小结

    Hibernate分页查询小结

    hibernate实现动态SQL查询

    本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板引擎来生成执行的SQL语句。 一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。...

    Hibernate查询语言HQL.PPT

    Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...

    struts2+spring2+hibernate3注册查询搜索分页实例

    在查询和搜索功能中,Hibernate3通过HQL(Hibernate查询语言)或 Criteria API来执行SQL查询,简化了数据库操作。在分页功能中,Hibernate3的Criteria API可以配合Pageable接口实现数据的分页检索。 在分页功能上,...

    hibernate 模糊查询 分页

    本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...

    hibernate查询代码

    最后,`hibernate查询`这个压缩包可能包含了一些示例代码和配置文件,用于演示如何在Java项目中实现上述查询方式。通过分析这些文件,你可以更好地理解Hibernate查询的工作原理,并将其应用到自己的项目中。 总之,...

    hibernate里面的 两种查询

    2. HQL(Hibernate Query Language): HQL是Hibernate特有的查询语言,它的语法类似于SQL,但面向对象,可以直接操作持久化类和它们的属性。HQL提供了更高级别的抽象,使得开发者可以忽略数据库特定的语法细节。 -...

    Hibernate的MySql查询.rar

    本文将深入探讨在使用Hibernate进行MySQL查询时的一些关键知识点,以帮助开发者更好地理解和应用这些技术。 首先,我们需要理解Hibernate的核心概念。Hibernate通过提供一个中间层,将Java对象与数据库表进行映射,...

    Hibernate分页查询原理解读

    ### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...

    hibernate的多态查询

    2. **实体类和继承层次结构**:在Hibernate中,实体类可以构成继承关系,通过`@Inheritance`注解来定义继承策略,如SINGLE_TABLE、JOINED、TABLE_PER_CLASS等。不同的策略会影响数据库表的设计和查询的方式。 3. **...

    hibernate将本地SQL查询结果封装成对象

    当我们需要执行一些特殊的、复杂的或者非标准的SQL查询时, Hibernate的本地SQL查询功能就显得尤为实用。本文将深入探讨如何使用Hibernate将本地SQL查询的结果封装成对象。 首先,本地SQL查询(Native SQL)是指...

    Hibernate 多表连接分页查询示范项目

    总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...

    hibernate映射和查询

    2. **QBC**:基于 Java 接口的查询,提供了一种类型安全的方式。例如,获取所有学生: ```java Criteria criteria = session.createCriteria(Student.class); List&lt;Student&gt; students = criteria.list(); ``` 3....

Global site tag (gtag.js) - Google Analytics