java代码
- //首先是表的映射
- public class OperLog implements
- private static final long
- @Id
- @GeneratedValue
- private
- @Column
- @JsonSerialize(using=DateJsonSerialize.class)
- private
- @Column
- private
- @Column
- private
- }
- //DAO只要接口就可以了,
- public interface OperLogRepository extends
- }
- //service层
- @Service("dataservice")
- public class DataServiceImpl implements
- public Pagenation<OperLog> pageOperLog(int page, int
- new PageRequest(page-1, rows,new Sort(Direction.DESC,"id"));
- Page<OperLog> infos = olDao.findAll(buildOperSpecification(key, start,end), pinfo);
- new
- pg.setRows(infos.getContent());
- new
- return
- }
- private Specification<OperLog> buildOperSpecification(final
- final Date start, final
- return new
- public
- new
- if(StringUtils.hasText(key)){
- "oper");
- "%" + key + "%"));
- }
- if(start!=null){
- "stamp");
- predicates.add(cb.greaterThanOrEqualTo(np, start));
- }
- if(end!=null){
- "stamp");
- predicates.add(cb.greaterThanOrEqualTo(np, end));
- }
- if (predicates.size() > 0) {
- return cb.and(predicates.toArray(new
- }
- return
- }
- };
- }
- @Autowired
- OperLogRepository olDao;
这里千万要注意的是PageRequest的页码是从0开始的,而我自己页码是从1开始的!所以导致分页的时候,只做了一个count语句,记录没有取!血的教训啊!
下面是一些配置文件
Xml代码
- <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" />