一个早上加一个中午就耗在这里了啊,就一个小问题,让我吐血不已,我的暗黑3也没有顾上玩,郁闷
//首先是表的映射
public class OperLog implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Integer id;
@Column
@JsonSerialize(using=DateJsonSerialize.class)
private Date stamp;
@Column
private String oper;
@Column
private String memo;
}
//DAO只要接口就可以了,
public interface OperLogRepository extends CrudRepository<OperLog, Integer>,JpaSpecificationExecutor<OperLog> {
}
//service层
@Service("dataservice")
public class DataServiceImpl implements DataService {
public Pagenation<OperLog> pageOperLog(int page, int rows, String key, Date start, Date end) {
Pageable pinfo = new PageRequest(page-1, rows,new Sort(Direction.DESC,"id"));
Page<OperLog> infos = olDao.findAll(buildOperSpecification(key, start,end), pinfo);
Pagenation<OperLog> pg = new Pagenation<OperLog>(page, rows);
pg.setRows(infos.getContent());
pg.setTotal(new Long(infos.getTotalElements()).intValue());
return pg;
}
private Specification<OperLog> buildOperSpecification(final String key,
final Date start, final Date end) {
return new Specification<OperLog>() {
public Predicate toPredicate(Root<OperLog> root, CriteriaQuery<?> q, CriteriaBuilder cb) {
List<Predicate> predicates = new ArrayList<Predicate>();
if(StringUtils.hasText(key)){
Path<String> np = root.get("oper");
predicates.add(cb.like(np, "%" + key + "%"));
}
if(start!=null){
Path<Date> np = root.get("stamp");
predicates.add(cb.greaterThanOrEqualTo(np, start));
}
if(end!=null){
Path<Date> np = root.get("stamp");
predicates.add(cb.greaterThanOrEqualTo(np, end));
}
if (predicates.size() > 0) {
return cb.and(predicates.toArray(new Predicate[predicates.size()]));
}
return cb.conjunction();
}
};
}
@Autowired
OperLogRepository olDao;
这里千万要注意的是PageRequest的页码是从0开始的,而我自己页码是从1开始的!所以导致分页的时候,只做了一个count语句,记录没有取!血的教训啊!
下面是一些配置文件
<bean id="myEmf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.fox.dataws.model" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="${hibernate.show_sql}" />
<property name="generateDdl" value="${jpa.generateDdl}" />
<property name="databasePlatform" value="${persistence.dialect}" />
</bean>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.uid}" />
<property name="password" value="${db.pwd}" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="myEmf" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<jpa:repositories base-package="com.fox.dataws.repo" />
分享到:
相关推荐
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
这两个模块的 jar 文件,`spring-data-commons-1.7.2.RELEASE.jar` 和 `spring-data-jpa-1.5.2.RELEASE.jar`,包含了它们各自的功能实现和依赖。在实际项目中,将这些 jar 文件添加到类路径,就可以利用 Spring Data...
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
### Spring-data-jpa 的核心知识点解析 #### 一、Spring-data-jpa 基本介绍 Spring-data-jpa 是 Spring 家族中的一个重要成员,它主要用于简化基于 Java Persistence API (JPA) 的数据访问层(DAO)的开发工作。...
Spring Data JPA 是Spring框架的一个子项目,它提供了基于JPA规范的数据持久化解决方案,主要目的是简化数据访问层的代码。JPA(Java Persistence API)是Java EE(现在是Jakarta EE)的一部分,提供了对象关系映射...
spring-data-jpa
spring data jpa最新版本1.8.0,包含了spring-data-jpa-1.8.0.RELEASE.jar,spring-data-jpa-1.8.0.RELEASE-javadoc.jar以及 spring-data-jpa-1.8.0.RELEASE-sources.jar文档和源代码
该项目是一个基于SpringBoot框架构建的简单网上商城应用,利用了Spring-data-jpa进行数据库操作,Druid作为数据连接池,并采用Thymeleaf模板引擎来处理前端展示。下面将详细介绍这三个核心组件及其在项目中的作用。 ...
spring-data-jpa-1.4.2.RELEASE.jar
java运行依赖jar包
**Spring Data JPA 简单实例** Spring Data JPA 是 Spring 框架的一个模块,它极大地简化了与 Java 持久层的交互,尤其是与 JPA(Java Persistence API)的集成。通过 Spring Data JPA,我们可以快速地创建数据访问...
java运行依赖jar包
Spring Data JPA是Spring框架的一个模块,专门用于简化Java Persistence API (JPA)的使用,它使得数据库操作变得更加便捷和高效。JPA是Java中的一种ORM(对象关系映射)规范,允许开发者以面向对象的方式处理数据库...
java运行依赖jar包
java运行依赖jar包
spring-data-jpa-1.5.2
java运行依赖jar包
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
通过深入学习这个 "spring-data-jpa-example" 项目,初学者可以理解如何在 Spring 应用中集成 JPA,如何创建和使用 Repository,以及如何组织服务和控制层。这有助于快速上手基于 Spring Data JPA 的数据访问层开发...