当前位置: 首页 > news >正文

吴江市中云建设监理有限公司网站长春房产网官网

吴江市中云建设监理有限公司网站,长春房产网官网,前端移动端开发,哪些网上订餐的网站做的好需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久#xff0c;没有发现有类似功能的插件。于是自己手写了一个#xff0c;借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上#xff0c;实现了查询的统一封装。技…需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久没有发现有类似功能的插件。于是自己手写了一个借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上实现了查询的统一封装。技术难点基于SerializedLambda对象获取查询的属性例如下面是获取task的nameMongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName())怎么传参这种Task::getName 函数引用通过函数式接口SFunction来表示R实际类型Children ne(R column, Object val);FunctionalInterface public interface SFunctionT, R extends FunctionT, R, Serializable { }然后通过maybeDo来判断搜索参数不为空才进行查询。这里DoSomething又是一个函数式接口something.doIt()时才会执行具体columnToString操作得到我们的属性。 protected Children addCondition(boolean condition, R column, SqlKeyword keyWord, Object val, Object... key) {return maybeDo(condition, () - columnToSqlSegment(column, val, keyWord, key));}protected final Children maybeDo(boolean condition, DoSomething something) {if (condition) {something.doIt();}return typedThis;}FunctionalInterfacepublic interface DoSomething {void doIt();}protected String columnToString(SFunctionT, ? column) {return LambdaUtils.getField(column);}c. 最后就是泛型的使用这里需要查询返回泛型T属性column泛型RChildren泛型表示返回类型类似builder做链式调用最后继承类对具体类型的声明。public interface QueryTpublic interface FuncChildren, R extends Serializablepublic abstract class AbstractQueryT, R, Children extends AbstractQueryT, R, Childrenimplements FuncChildren, R, QueryTpublic abstract class MongoAbstractLambdaQueryT, Children extends MongoAbstractLambdaQueryT, Childrenextends AbstractQueryT, SFunctionT, ?, Childrenpublic class MongoLambdaQueryT extends MongoAbstractLambdaQueryT, MongoLambdaQueryT项目地址https://github.com/DarMi7/mongo-lambda-query使用demo引入maven依赖文件dependency groupIdio.github.darmi7/groupId artifactIdmongo-lambda-query/artifactId version1.1.0/version/dependency开启插件注解加上需要扫描mongo实体的包路径EnableMongoLambdaQueryEnableMongoRepositories(basePackages com.darmi.demo.repository.mongo)public class Application编写查询代码Repositorypublic interface TaskRepository extends MongoRepositoryTask, String {default PageTask search(TaskCriteria taskCriteria) {return MongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName()).is(Task::getType, taskCriteria.getFuzzyName()).reg(Task::getName, taskCriteria.getName()).gt(Task::getPoints, taskCriteria.getPoints()).gt(Task::getCreated, taskCriteria.getBegin()).lt(Task::getCreated, taskCriteria.getEnd()).page(taskCriteria.getPagination());}}
http://www.hkea.cn/news/14352224/

相关文章:

  • 免费1级做爰片在线观看网站手机app开发软件免费
  • 网站做产品的审核网站手机版管理链接
  • 做炭化料的网站vi设计费用
  • 找素材的网站北京网站模板
  • 服务器网站带宽体育新闻最新消息今天
  • 做网店有哪些网站怎么把自己的网站上传到百度
  • 备案的网站换空间有什么推广的平台
  • 大型网站seo增城做网站公司
  • 备案不关闭网站的方法企业服务网站
  • 网站建设学习视频请人做网站需要注意什么
  • 网站编程用什么语言好网站栏目划分怎么做
  • 打开这个网站深圳品牌做网站
  • 沈阳做购物网站电话html5响应式网站开发教程
  • wordpress 多站点 404工程公司排名
  • 国外社交网站设计欣赏建设工程施工合同专属管辖
  • 百度不收录网站做网站老板嫌弃太丑谁的锅
  • 秦皇岛做网站汉狮网络appui界面设计
  • 成都建立网站营销设计无锡哪家做网站好
  • 做金融类网站建网站需要买些什么
  • 超值的扬中网站建设给个网址兄弟
  • 网投网站怎么做谷歌关键词推广怎么做
  • 网站可以自己做服务器么怎样制作3d立体效果图
  • 上海公司做网站网站 后台
  • ps网站子页怎么做的怎么用cms做网站
  • 成都网站的优化罗夫曼三大社区模式
  • 贵阳商城网站建设电影网站建设
  • 网站seo推广方案wordpress 侧边栏
  • 中国建设网站齐齐哈尔市如何做线上销售
  • 郑州响应式网站简历网
  • 域名可以做网站wordpress文章摘要缩略图