`
darrenzhu
  • 浏览: 804558 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用join fetch with JPA2 CriteriaQuery的简单例子

阅读更多
protected TypedQuery<SearchResult> getCriteriaQuery(SearchType searchType,SearchCriteria searchCriteria){
	CriteriaBuilder cb=histDao.getEntityManager().getCriteriaBuilder();
	CriteriaQuery cq=cb.createQuery(RequestInfo.class);
//	Metamodel m=histDao.getEntityManager().getMetamodel();
//	EntityType<RequestInfo> RequestInfo_=m.entity(RequestInfo.class);
	Root<RequestInfo> from=cq.from(RequestInfo.class);
	EntityType<RequestInfo> RequestInfo_=from.getModel();
	Join<RequestInfo, BatchInfo> join1=from.join(RequestInfo_.getSingularAttribute("batchInfo", BatchInfo.class), JoinType.INNER);
	Join<RequestInfo, PortInfo> join2=from.join(RequestInfo_.getSet("portInfo", PortInfo.class), JoinType.LEFT);
	from.fetch(RequestInfo_.getSet("portInfo"), JoinType.LEFT);
	cq.select(from);
	cq.where(cb.equal(from.get(RequestInfo_.getSingularAttribute("requestId", String.class)),"CE.0010650337_D"));
	
	TypedQuery<SearchResult> typedQuery=histDao.getEntityManager().createQuery(cq);
	return typedQuery;
    }
分享到:
评论

相关推荐

    JPA实例 经典

    - **查询(Query)**: JPA提供了Criteria API和JPQL(Java Persistence Query Language)进行复杂查询。 4. **关联管理** - **一对一(OneToOne)**: 两个实体之间一对一的关系,例如用户和账户。 - **一对多...

    jpa使用说明(English)

    ### JPA 使用说明 #### 一、引言与背景 在企业级应用开发中,管理关系型数据库的数据是一项核心任务。传统的做法是使用 JDBC(Java Database Connectivity)来操作数据库。虽然 JDBC 支持大量数据的处理,能确保...

    Spring-JPA

    4. **JPA特性利用**: 利用JOIN fetch避免N+1查询问题,使用@Temporal注解处理日期时间类型,使用@PrePersist和@PreUpdate处理生命周期事件。 **五、SSH框架集成** SSH(Spring、Struts、Hibernate)是经典的Java ...

    07_JPA详解_使用JPA加载_更新_删除对象.zip

    避免使用过于复杂的JPQL查询,考虑使用JOIN fetch来预加载关联,减少N+1查询问题。此外,合理设置实体的装载模式,如选择性地加载关联,有助于提升性能。 总结,JPA为Java开发者提供了简洁且强大的ORM框架,简化了...

    electron-main-fetch在Electron的主要进程中使用浏览器FetchAPI

    `electron-main-fetch`库就是为了满足这个需求而诞生的,它允许我们在Electron的主要进程中使用与浏览器相同的Fetch API。 Fetch API是一种现代、统一的接口,用于在Web上发起HTTP请求。它提供了异步操作,返回...

    spring 使用 Jpa的笔记

    ### Spring 使用 JPA 的知识点详解 #### 一、Spring与JPA简介 Spring框架与Java Persistence API (JPA)的结合使用是当前企业级应用开发中的常见实践之一。Spring为JPA提供了很好的集成支持,使得开发者能够更加...

    jpa工作中,多表查询的使用方式-----curd的Demo ,基本掌握后,jpa 就不是问题了

    在查询时,可以使用`@Query`注解配合JPQL(Java Persistence Query Language)来实现JOIN操作,例如`SELECT e FROM Entity1 e JOIN e.entity2`,这会将Entity1和Entity2关联起来。 2. **Criteria API**:这是JPA...

    JPA一对一关系实例配置

    本实例将详细探讨JPA中的一对一(OneToOne)关系配置,以及如何在实际项目中实现。 一对一关系在数据库设计中意味着两个实体之间存在一个实体对应另一个实体的唯一关系。例如,一个人可能只有一个护照,或者一个...

    JPA实用讲义

    5. **查询(Query)**:JPA提供QL(Java Persistence Query Language)进行查询,类似于HQL(Hibernate Query Language),也可以使用原生的SQL查询。 ### JPA注解 - `@Table`:指定实体对应的数据库表名。 - `@...

    Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据

    下面我们通过实际的例子来说明它的使用,并与逐条取记录的 fetch into 执行效率上进行比较。测试环境是 Oracle 10g 10.2.1.0,查询的联系人表 sr_contacts 中有记录数 1802983 条,游标中以 rownum 限定返回的记录数...

    JPA

    Spring提供了一种简单的方法来配置和使用JPA。通过Spring的`AnnotationSessionFactoryBean`,可以很容易地设置JPA环境,使用注解来指定实体类的位置和其他配置细节。例如,`@MappingLocations`用于指定映射文件的...

    JPA 一对一实例配置

    在Java开发中,Java Persistence API (JPA) 是一种用于管理关系数据库的框架,它提供了对象关系映射(ORM)功能,使得开发者可以使用面向对象的方式来操作数据库。本篇文章将聚焦于JPA中的一对一(OneToOne)关联映射...

    使用jpa映射关联和继承

    使用`@ManyToMany`注解,可以通过`@JoinTable`来定义中间表,包括外键字段名。 **二、JPA继承映射** 1. **单一继承(Single Table Inheritance,STI)**:所有子类数据都存储在同一个表中,通过一个字段来区分不同...

    spring jpa

    6. **Query注解**:对于更复杂的查询,我们可以使用`@Query`注解在Repository接口的方法上,直接写入JPA的JPQL(Java Persistence Query Language)或者HQL(Hibernate Query Language)。 7. **Specifications**:...

    09_JPA详解_使用JPQL语句进行查询.zip

    在"09_传智播客JPA详解_使用JPQL语句进行查询"的课程中,你将深入学习如何利用JPQL进行复杂的查询,包括联合查询、子查询、分页查询以及使用JOIN操作来处理关联数据。通过这个课程,你可以掌握JPA的核心概念和实践...

    Spring Data JPA的优点和难点.pdf

    开发者需要熟悉JPA的内部工作原理,适时使用`@Query`注解自定义SQL,以提升性能。 2. **关联关系的处理**: - 在处理多对一、一对多、多对多等复杂关联关系时,可能会出现懒加载(LazyInitializationException)...

    实用JPA开发指南----jpa核心技术(关联关系等的配置高级配置)

    **JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java...EJB3_JPA.doc和JPA_Basic.pdf可能包含了更详细的教程和实例,帮助读者进一步掌握JPA的核心技术和高级配置。

    JPA注解说明 详解

    2. **@Table(name="", catalog="", schema="")**:与@Entity配合使用,定义实体所对应的数据库表的详细信息。`name`指定表名,`catalog`指定Catalog(数据库分组)名,`schema`指定Schema(数据库模式)名。这些都是...

    使用Spring Data Jpa为我们提供的@EntityGraph.docx

    为了解决这个问题,JPA提供了@EntityGraph注解,配合Spring Data JPA使用,能够帮助我们优化查询性能,避免N+1问题。 `@EntityGraph`和`@NamedEntityGraph`是JPA提供的两个注解,用于定义和引用实体图。实体图是一...

    jpa性能优化ppt

    2. **使用Join Fetches**:在某些运行时使用案例中,可以使用Join Fetches覆盖配置为懒加载的关系,以急切加载数据,避免N+1查询问题,即一次查询主实体,然后对每个关联实体进行额外查询,这会严重影响性能。...

Global site tag (gtag.js) - Google Analytics