`

多个实体类进行分页查询

    博客分类:
  • hpql
阅读更多
1>这种查询只能查询3个及3个以下的实体类。

public PaginationSupport fingEntity(int type, int pageSize,
			int startIndex) {
String jpql = " from AA a,BB b,CC c";
jpql += " where a.id=b.id and b.e_id= c.id";
		
PaginationSupport ps = this.selectPage(jpql, pageSize, startIndex);
return ps;	
}

@Override
public List getList() {
// TODO Auto-generated method stub
String jpql = " select a.e_name,lp FROM AA a,PP lp WHERE a.id = lp.e_id  ";
//System.out.println("jpql:"+jpql);
List list = this.select(jpql);	

return list;
}

@Override
public PaginationSupport selectPage(String jpql, int pageSize,
			int startIndex) {
		int totalCount = selectCount(jpql);
		if (totalCount < 1)
			return new PaginationSupport(new ArrayList(0), 0);
		Query query = entityManager.createQuery(jpql);
		List items = query.setFirstResult(startIndex).setMaxResults(pageSize).getResultList();
		PaginationSupport ps = new PaginationSupport(items, totalCount, pageSize, startIndex);
		return ps;
	}


2> 查询实体涉及4个及4个以上,可以采用以下方法:


@Override
public PaginationSupport findEnterpriseList(int is_submit,String real_name, int pageSize,int currentPage) {
String jpql ="SELECT enter.id,enter.e_name,u.real_name, u.telephone_number, u.mailbox ,";
jpql+= " FROM (SELECT * FROM EE) enter  " ;		
jpql+= " LEFT JOIN (SELECT * FROM UU ) u ON enter.id = u.e_id ";		   
jpql+= " LEFT JOIN (SELECT * FROM MM) manu ON enter.id = manu.e_id";
jpql+= " LEFT JOIN (SELECT * FROM NS ) ns ON enter.id = ns.id ";		
jpql+= " WHERE enter.is_submit = ? " ;
if(!"".equals(real_name)){
jpql+=" AND u.real_name LIKE '%"+real_name+"%' ";
}
jpql+= "ORDER BY enter.id DESC ";		
		
Object[] objects = {is_submit};
try{
Map<String,Class> clazz=new HashMap<String,Class>();
PaginationSupport ps = this.selectPageSql(jpql, clazz, pageSize, currentPage,objects);	
return ps;
}catch(Exception e){
	e.printStackTrace();
}
return null;
}



daoImpl:

@Override
	public PaginationSupport selectPageSql(String jpql,
			Map<String, Class> entity, int pageSize, int startIndex,
			Object... objects) {
			int count=0;
		
		Session session = (Session)entityManager.getEntityManagerFactory().createEntityManager().getDelegate();
		SQLQuery query=session.createSQLQuery(jpql);
		for(String classname:entity.keySet()){
			query.addEntity(classname, entity.get(classname));
		}
		for (int i = 0; i < objects.length; i++) {
			query.setParameter(i, objects[i]);
		}
		count= query.list().size();
		List items = query.setFirstResult(startIndex).setMaxResults(pageSize).list();
		PaginationSupport ps = new PaginationSupport(items, count, pageSize, startIndex);
		return ps;
	}




推荐下开的淘宝小店筱夜宫主(http://xiaoyegongzhu.taobao.com/)DR.HU 胡博士美妆~坐在电脑旁的汉子姑娘注意脸部护理呀,做了程序媛,也要美丽啊。。。小店有优惠码:YE4450,报优惠码,抵两元券,(⊙o⊙)…
分享到:
评论

相关推荐

    公共的Pager分页实体类

    在IT行业中,分页是数据查询时非常常见的一种技术,特别是在大数据量的...在"Pager.java"文件中,我们可以看到这个实体类的具体实现细节,包括它的属性定义、方法实现以及可能的注释,这些都是理解并使用这个类的关键。

    JPA分页查询与条件分页查询

    在这个场景中,我们将探讨如何使用JPA进行分页查询以及带有条件的分页查询。 首先,为了使用Spring Data JPA,我们需要在项目中引入相应的依赖。在Maven的pom.xml文件中,你需要添加`spring-boot-starter-data-jpa`...

    利用servlet+jsp+javabean进行分页查询

    同时,javabean还会封装查询结果,可能是一个包含多条记录的List对象,每条记录对应一个实体类。 3. **JSP**:作为视图层,JSP接收Servlet传递过来的数据,并负责展示。在JSP中,我们可以使用JSTL(JavaServer ...

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

    1. **建立实体类**:首先,为每个数据库表创建对应的 Java 实体类,并使用 @Entity 注解标记。 2. **定义关联**:在实体类中使用 @ManyToOne, @OneToOne, @OneToMany 或 @ManyToMany 等注解定义表之间的关联关系。 3...

    C#数据实体类中如何给属性赋值

    这种方法特别适用于处理大量数据表的情况,避免了手动为每个实体类属性赋值的繁琐操作。反射虽然提供了一种灵活的方式来实现这一目标,但在性能敏感的应用场景中可能不是最佳选择。因此,在实际应用中,还需要根据...

    Java的MyBatis框架中实现多表连接查询和查询结果分页

    以示例中的`Website`和`Visitor`两个实体类为例,如果它们之间存在一对一的关系,我们可以在`Website`的映射文件中定义一个`&lt;association&gt;`标签来引用`Visitor`表。例如: ```xml &lt;!-- 其他字段映射... --&gt; ...

    使用hibernate分页查询

    // 假设Tuobao是你的实体类 criteria.setFirstResult((currentPage - 1) * pageSize); criteria.setMaxResults(pageSize); List&lt;Tuobao&gt; tuobaos = criteria.list(); ``` 这段代码将获取第`currentPage`页,每...

    springboot整合mybatis-plus实现多表分页查询

    例如,我们可以创建一个`UserMapper`接口和对应的`UserMapper.xml`文件,来实现多表分页查询。 ```java public interface UserMapper extends BaseMapper&lt;User&gt; { List&lt;User&gt; selectUsersWithAddressByPage(@Param...

    多表联合分页查询(Mybatis注解).zip_9AB_mybatis_skillwoc_全注解_多表关联分页查询

    每个实体类都应该有对应的Mapper接口和Mapper XML文件(即使使用注解方式,也可能需要XML文件来定义更复杂的映射)。在多表关联的情况下,实体类可能会包含其他实体类的引用,通过这种方式建立对象间的关联。 此外...

    java级联查询、分页查询

    级联查询用于获取一个实体的相关实体信息,而分页查询则用于提高查询效率和用户体验,避免一次性加载过多数据导致性能下降。下面将详细探讨这两个概念以及如何在Java中实现它们。 首先,级联查询在Java中通常是通过...

    C#,asp.net操作mongodb实例,新增,修改,查询,分页查询,删除,基类封装,打开直接运行

    T代表你的实体类,例如`User`,其中包含你要存储的数据字段。 修改数据:更新操作通常使用`MongoCollection&lt;T&gt;.ReplaceOneAsync`或`UpdateOneAsync`方法完成。例如,根据特定条件更新一条记录,你可以传递过滤器...

    mybatis-plus分页查询 学习mybatis-plus在项目中的简单使用,代码生成器,分页查询,多数据源等

    MyBatis-Plus是一个强大的MyBatis扩展工具,它在MyBatis的基础上简化了许多操作,提供了包括但不限于自动装填实体类、代码生成器、分页查询等功能,使得开发者能够更高效地进行Java开发。本篇将详细介绍MyBatis-Plus...

    asp.net通用分页类

    本教程将详细讲解如何创建一个通用的分页类,以便在多个页面中复用。 首先,我们需要理解分页的基本原理。分页主要是通过限制每次从数据库中取出的数据量来实现的。比如,每一页显示10条记录,当用户点击下一页时,...

    asp.net实体类生成工具

    3. **性能优化**:对于大数据量的表,可能需要手动调整实体类的属性,如使用懒加载、分页查询等策略来提高性能。 4. **安全考虑**:避免生成包含敏感信息的实体类,如密码明文等,应使用加密或哈希处理。 总的来说...

    springboot结合jpa实现分页,动态多条件查询

    通过这个实现,用户可以在前端输入查询条件,后端会根据这些条件进行数据库查询,并返回分页结果,Thymeleaf模板将结果渲染成用户友好的界面。这在实际应用中非常常见,能够提高用户体验并减轻服务器负载。

    Asp.net C#通用分页类

    ### Asp.net C#通用分页类 #### 概述 在Web开发中,特别是使用ASP.NET进行开发时,数据分页是一个常见的需求。...在实际开发中,可以根据具体需求进一步扩展和完善这个通用分页类,以满足更多复杂的应用场景。

    linq 简单查询,分页

    通过LINQ to SQL,开发者可以定义实体类(Entity Classes),这些类对应数据库中的表,然后通过对象关系映射(ORM)框架自动生成数据库访问代码。 在上面的例子中,我们可以看到`dataContext`和`frombindataContext...

    JSP_分页查询关键代码

    本文详细介绍了在JSP环境中实现分页查询所需的关键技术点,包括数据库连接类的设计、实体类的定义以及分页查询的基本实现思路。通过本文的学习,你可以更好地理解和掌握如何在实际项目中运用分页查询技术,提高应用...

    Jsp分页查询

    **JSP分页查询**是Web开发中常见的一种功能,用于在网页上展示...总的来说,JSP分页查询涉及JDBC的连接管理、SQL的分页语法、结果集处理以及前端展示等多个环节,合理运用这些技术,能有效地提供大规模数据的浏览体验。

    mybatis自动生成Java实体类和映射文件的自动生成类工具

    标题中的"mybatis自动生成Java实体类和映射文件的自动生成类工具"指的就是这样的一个辅助开发工具,它可以分析数据库表结构,并根据表信息自动生成对应的Java实体类和Mapper接口及其XML配置文件。 在Java开发中,...

Global site tag (gtag.js) - Google Analytics