- //首先是表的映射
- 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" />
相关推荐
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
Spring Data JPA中文文档1.4.3
'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...
spring注解完整版+spring data jpa官方文档中文翻译+JPA2.0官方文档 文档内容齐全 值得参考学习
使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速开发迭代,可用于开发模板,项目经过测试,可完美运行! 使用 SpringBoot + SpringDataJPa 设计通用的权限管理系统,适合管理系统快速...
技术架构:SpringMVC3+Spring3.1.2+Spring Data JPA+Maven 声明:该应用仅仅是技术研究:Spring Data JPA的配置和常见api的使用&maven构建项目,其他技术不在此研究 内涵sql和各种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.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot+Spring Data JPA.zip仓库管理系统,SpringBoot...
NULL 博文链接:https://mixo44.iteye.com/blog/1797079
Spring Data JPA中文文档[1.4.3].zip
Spring Data JPA是Spring基于Hibernate开发的一个JPA框架。如果用过Hibernate或者MyBatis的话,就会知道对象关系映射(ORM)框架有多么方便。但是Spring Data JPA框架功能更进一步,为我们做了 一个数据持久层框架...
3. 与Spring全家桶结合紧密: 4. 成熟的框架和架构 常⻅的SQL性能问题,如何优雅处理? 2. 错综复杂的关联关系如何应对? 3. 万恶的LazyException本质是什么? 4. ⾼并发⾼性能要求的API服务要⽤JPA吗?
基于SpringBoot+Spring Data JPA+mybatis的仓库管理系统 基于SpringBoot+Spring Data JPA+mybatis的仓库管理系统 基于SpringBoot+Spring Data JPA+mybatis的仓库管理系统 基于SpringBoot+Spring Data JPA+mybatis的...
Spring Data JPA Demo
第一章:Spring Data JPA入门 包括:是什么、能干什么、有什么、HelloWorld等 第二章:JpaRepository基本功能 包括:代码示例JpaRepository提供的CRUD功能,还有翻页、排序等功能 第三章:JpaRepository的查询 ...
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封 装的一套 JPA 应用框架,可使开发者用极简的代码即可实现对数据库 的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩 展!学习并使用 ...
1、基于SpringBoot+Spring Data JPA+mybatis的仓库管理系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...
该案例使用SpringBoot 整合了SPringData JPA,使用SpringData 开发简化了Dao层的开发量,简化了数据访问,使得持久化更加简单 !
基础框架,可满足开发需要