合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
数据存取依赖klg-jpa项目,[详见klg-jpa项目](https://gitee.com/klguang/klg-jpa) 配置文件为`classpath:spring-jpa.xml` ## 扫描entity ``` <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="packagesToScan"> <list> <value>org.coderfun.boot.core.entity</value> <value>org.coderfun.common.*.entity</value> </list> </property> <property name="dataSource" ref="dataSource" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true" /> <property name="generateDdl" value="false" /> <property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" /> </bean> </property> </bean> ``` ## 扫描repository ``` <jpa:repositories base-package="org.coderfun.boot.core.dao,org.coderfun.common.*.dao" factory-class="klg.common.dataaccess.BaseRepositoryFactoryBean" entity-manager-factory-ref="entityManagerFactory" transaction-manager-ref="transactionManager" repository-impl-postfix="Impl" /> ``` ## 继承接口 项目中Repository继承BaseRepository,Service接口继承BaseService,ServiceImpl继承BaseServiceImpl;<br>BaseService的接口中有BaseRepository的大部分方法 ## 快速上手 klg-jpa 便捷查询,含有日期比较的例子 ``` @ResponseBody @RequestMapping("/findpage") public EasyUIPage findpage( @RequestParam int page, @RequestParam int rows, @RequestParam(required=false) Long employeeid, @RequestParam(required=false) String typeCode, @RequestParam(required=false) @DateTimeFormat(pattern="yyyy-MM-dd") Date startDate, @RequestParam(required=false) @DateTimeFormat(pattern="yyyy-MM-dd") Date endDate){ Pageable pageable=new PageRequest(page<1?0:page-1, rows, new Sort(Direction.DESC,"numId")); Page<DrugOut> pageData=drugOutService.findPage(pageable, AExpr.eq(DrugOut_.employeeid, employeeid).igEmpty(),// igEmpty()忽略空值,包括null和"" AExpr.eq(DrugOut_.typeCode, typeCode).igEmpty(), AExpr.gte(DrugOut_.saledate, startDate).igEmpty(),//大于 AExpr.lte(DrugOut_.saledate, endDate).igEmpty());//小于 return new EasyUIPage(pageData); } ``` ## AExpr 属性表达式工厂 |方法 |说明 | | --- | --- | | eq | = | | ne | <> | | gt | > | | lt | < | | gte | >= | | lte | <= | | like |模糊匹配,注意必须包含"%"通配符 | | contain | 包含字符串,即like查询,在两边都有"%"通配符 | |in |in | | between| between| |isNull | isNull| | isNotNull|isNotNull |