[发明专利]Spring data JPA实现动态查询的方法在审
申请号: | 201410077357.X | 申请日: | 2014-03-04 |
公开(公告)号: | CN103870555A | 公开(公告)日: | 2014-06-18 |
发明(设计)人: | 逯利军;钱培专;汪金忠;林强;李克民;宋聚平;卢天华 | 申请(专利权)人: | 赛特斯信息科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海智信专利代理有限公司 31002 | 代理人: | 王洁;郑暄 |
地址: | 210042 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | spring data jpa 实现 动态 查询 方法 | ||
1.一种Spring data JPA实现动态查询的方法,其特征在于,所述的方法包括以下步骤:
(1)采用基于Spring FactoryBean创建的动态查询确认类判断被调用的接口方法是否需要进行动态查询,如果是,则继续步骤(3),否则,继续步骤(2);
(2)采用原Spring data框架处理该被调用的接口方法,然后结束退出;
(3)采用基于Spring FactoryBean创建的动态JPA查询类创建动态查询语句;
(4)所述的动态JPA查询类将所述的动态查询语句发送至JPA框架;
(5)所述的动态JPA查询类将JPA框架的查询结果转换成指定类型的返回对象。
2.根据权利要求1所述的Spring data JPA实现动态查询的方法,其特征在于,所述的判断被调用的接口方法是否需要进行动态查询,具体为:
判断被调用的接口方法是否进行了动态JPA查询类的注解。
3.根据权利要求1所述的Spring data JPA实现动态查询的方法,其特征在于,所述的动态JPA查询类创建动态查询语句,具体为:
(31)所述的动态JPA查询类根据接口方法中的参数定义以及进行接口方法调用的实际传递参数值创建动态查询语句中的条件语句。
4.根据权利要求3所述的Spring data JPA实现动态查询的方法,其特征在于,所述的根据接口方法中的参数定义以及进行接口方法调用的实际传递参数值创建动态查询语句中的条件语句,包括以下步骤:
(311)判断所述的接口方法的实际传递参数值是否为空值,如果是,则继续步骤(312),否则继续步骤(315);
(312)判断该实际传递参数是否有默认值,如果是,则继续步骤(313),否则继续步骤(314);
(313)将该默认值的条件加入到动态查询语句中的条件语句中;
(314)将该实际传递参数对应的查询条件忽略;
(315)判断该接口方法中是否有该实际传递参数的动态注解定义,如果是,则继续步骤(316);
(316)将该接口方法的条件加入到动态查询语句中的条件语句中。
5.根据权利要求3所述的Spring data JPA实现动态查询的方法,其特征在于,所述的步骤(31)和(4)之间,还包括以下步骤:
(32)所述的动态JPA查询类根据接口方法中定义的JPA查询结果返回类型创建动态查询语句中的选择部分。
6.根据权利要求5所述的Spring data JPA实现动态查询的方法,其特征在于,所述的动态JPA查询类将JPA框架的查询结果转换成指定类型的返回对象,具体为:
所述的动态JPA查询类根据接口方法中定义的JPA查询结果返回类型将JPA框架的查询结果转换成指定类型的POJO对象。
7.根据权利要求3所述的Spring data JPA实现动态查询的方法,其特征在于,所述的步骤(31)和(4)之间,还包括以下步骤:
(33)所述的动态JPA查询类根据接口方法定义中是否有Pageable或Sort类型的参数以及对应的实际传递参数值是否为空对动态查询语句中的条件语句进行排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于赛特斯信息科技股份有限公司,未经赛特斯信息科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410077357.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种水泥熟料及制备方法
- 下一篇:一种电磁水处理设备