0 0

spring data jpa 如何根据关联字段进行分页查询5

@Entity
@Table(name="TB_JSJGlobal_YuLu")
public class YuLu {

@Id
@GeneratedValue
private long id;

private long userId;

private String content;

private String image;

private String smallImage;

private int supportCount;
private int unSupportCount;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "yuLu")
private Set<YuLuComment> items = new HashSet<YuLuComment>();
}


@Entity
@Table(name="TB_JSJGlobal_YuLuComment")
public class YuLuComment {

@Id
@GeneratedValue
private long id ;
private long userId ; // 哪个用户发表的语录
private String comment ;
private String userName ; // 评论用户的名字

// optional=true:可选,表示此对象可以没有,可以为null;false表示必须存在
    @ManyToOne(cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true)
    @JoinColumn(name = "yulu_id")
    private YuLu yuLu;
}


// 对语录评论进行保存
@Override
public Page<YuLuComment> findYuLuComment(long yulu_id, int page,
int pageSize) {
// 设置查询相关
Sort sort = new Sort(Direction.DESC, "id");
Pageable pageable = new PageRequest(page, pageSize, sort);
Specification<YuLuComment> spec = new UpcomingConferences(yulu_id);
return yuLuCommentDao.findAll(spec, pageable);
}

// 创建评论的分页条件
private class UpcomingConferences implements Specification<YuLuComment> {
private long yulu_id;
public UpcomingConferences(long yulu_id) {
this.yulu_id = yulu_id;
}
@Override
public Predicate toPredicate(Root<YuLuComment> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
//左连接
Join<YuLuComment,YuLu> depJoin = root.join(root.getModel().getSingularAttribute("yuLu",YuLu.class),JoinType.LEFT ) ;
Predicate p = cb.equal(depJoin.get("id").as(Long.class), yulu_id);
return p;
}
}


 
2014年9月01日 12:41
目前还没有答案

相关推荐

    Spring Data JPA 笔记

    例如,Spring Data JPA支持自动化的查询生成,只需定义Repository接口,无需编写任何实现代码,就可以执行CRUD(创建、读取、更新、删除)操作。此外,它还支持复杂的查询方法命名,如findByXXX,根据方法名自动构建...

    Spring Data JPA.zip

    在黑马程序员的 JavaEE 57期课程中,学员们不仅会学习这些基础知识,还会通过实际项目来加深对 Spring Data JPA 的理解和应用,包括如何在多表关联、事务处理、数据验证等方面进行实战操作。掌握 Spring Data JPA ...

    Spring Data JPA入门项目02

    在本项目"Spring Data JPA入门项目02"中,我们将深入探讨如何使用Spring Data JPA进行查询操作,包括排序和分页。Spring Data JPA是Spring Framework的一个模块,它为Java Persistence API (JPA) 提供了一种更加便捷...

    Spring Data JPA Examples 官方源码

    Spring Data JPA提供了`Pageable`接口,用于实现分页查询。通过`PageRequest`可以设置分页参数,如页码和每页大小,返回的`Page`对象包含了当前页的数据以及分页信息。 通过学习和分析这些官方源码,开发者可以更...

    spring data jpa 入门例子

    Spring Data JPA还支持分页查询、排序、JPA规范中的查询语言JPA QL、动态查询、关联关系的处理(一对一、一对多、多对多)、懒加载和即时加载等特性。 10. **测试** 为了验证你的代码是否正确工作,可以使用...

    spring data jpa 例子

    Spring Data JPA提供了`Pageable`接口,用于在查询时指定分页参数,如页码和每页大小。配合` Slice`接口,即使在无限滚动场景下也能轻松处理数据。同时,`Sort`类用于定义排序规则,可以在查询时轻松指定升序或降序...

    Spring Data JPA Spring Data Commons

    下面将对Spring Data JPA的重要知识点进行详细介绍: 1. 概念介绍:Spring Data JPA是一个开源框架,旨在简化数据持久化层的开发,特别是对关系型数据库的操作。它主要解决了传统JPA实现中繁琐的数据访问层代码编写...

    Spring Data JPA

    - **自动Repository实现**:无需编写SQL或HQL,Spring Data JPA会根据Repository接口的方法名生成相应的查询。 - **Querydsl集成**:Spring Data JPA可以与Querydsl结合,创建类型安全的、可维护的查询对象。 - **...

    spring data jpa

    1. 自动查询:只需要定义一个方法名,Spring Data JPA就能根据方法名生成对应的SQL语句。例如,`findByLastname(String lastname)`将自动转化为查询姓为`lastname`的所有用户。 2. 连接查询:通过`@OneToOne`, `@...

    Spring Data JPA 简化 JPA 开发

    实体对象在 Spring Data JPA 中通常通过注解进行定义,如 `@Entity` 标记实体类,`@Table` 指定对应的数据库表,`@Id` 标识主键,以及其他字段级注解如 `@Column` 等。DAO(数据访问对象)接口则可以简单地声明为 ...

    Spring-data-jpa常用教程.pdf

    - 可以直接在 Repository 接口中定义查询方法名,Spring-data-jpa 会根据方法名自动解析并执行相应的查询操作。例如: ```java List&lt;User&gt; findByUsername(String username); ``` 4. **分页和排序**: - 使用 ...

    SpringDataJPA快速使用.pdf

    SpringDataJPA 是 Spring Data 家族中提供的一个持久层框架,它可以自动创建 DAO 实现类和自定义查询,简化了持久层代码。使用 SpringDataJPA 只需要三个步骤:声明持久层的接口、在接口中声明需要的业务方法、在 ...

    spring-data-JPA帮助文档

    通过Pageable对象,可以轻松实现数据的分页检索,并且能根据指定的字段进行排序。 八、动态查询 Spring Data JPA的动态查询功能允许开发者在运行时构建查询,例如通过Specification接口,可以创建复杂的查询条件,...

    Spring Data JPA从入门到精通

    12. **分页与排序**:通过Pageable接口,可以在查询时实现分页和排序,Spring Data JPA会自动处理相关的SQL语句。 13. **异常处理**:Spring Data JPA将数据库操作的异常转换为统一的DataAccessException,便于处理...

    Spring Data JPA文档.zip

    最后,Spring Data JPA还支持分页查询、排序、审计功能(如JPA的AuditingEventListener)以及事件监听机制。开发者可以自定义事件监听器,对实体的生命周期进行干预。 总的来说,"Spring Data JPA文档.zip"中的内容...

    spring-data-jpa-examples-master.rar_spring data jpa

    "spring-data-jpa-examples-master.rar_spring data jpa" 提供了一个关于Spring Data JPA的实际应用示例,这是一个广泛使用的Java框架,它简化了与数据库的交互,特别是通过JPA(Java Persistence API)进行操作。...

    SpringDataJpa.rar

    8. **Pagination and Sorting**:Spring Data JPA提供了分页和排序的支持,可以方便地在Repository接口中定义分页查询方法,如`Page&lt;User&gt; findAll(Pageable pageable)`。 9. **Integration with Spring Boot**:...

    spring data jpa 最新文档 2012

    **Spring Data JPA** 是Spring框架的一个重要模块,它提供了对Java Persistence API (JPA) 的简化集成,使得开发者能够更高效地与数据库进行交互。2012年的文档是针对该版本的详细指南,虽然时间相对较早,但仍然...

    spring-data Jpa Jar包

    - Spring Data JPA能根据Repository接口的方法名自动生成对应的SQL查询。例如,`findAll()`会执行一个SELECT所有记录的查询,`findByUserName(String name)`则会生成一个WHERE username = ?的查询。 3. **Querydsl...

Global site tag (gtag.js) - Google Analytics