QueryDsl查询mongodb数据1
来源:互联网 发布:淘宝卖饰品好做吗 编辑:程序博客网 时间:2024/06/09 01:31
QueryDsl查询mongodb数据1
使用开发spring data MongoDB respository查询过程中,默认使用Query By Example非常不方便,Querydsl与无具体实现无关,比较灵活。本文简要介绍Querydsl,并配置gradle生成查询类,后续介绍相关查询使用。
Querydsl简介
Querydsl框架(http://www.querydsl.com)
Unified Queries for Java. 统一java查询语言,官方宣传特点为简洁、安全、易学。
Querydsl框架通过流畅的API让我们轻松使用静态类型构造类SQL查询,无需在字符串中拼接SQL或在xml文件中定义SQL。这些API衍生与实际的表或对象模型,但同时又是与存储和模型高度无关的,所以它允许为各种存储类型创建和使用查询API.它目前支持JPA、Hibernate、JDO、JDBC、Lucene、MongoDB等。功能的多样性是Spring Data集成Querydsl的主要原因,因为Spring Data也集成了多种类型的存储。相比与其他构建查询方式有以下优势:
- 在IDE中代码完整
- 几乎没有语法上不允许的查询
- 域类型或属性被安全引用
- 可以更好重构域类型变化
查询元模型
当使用Querydsl时候,通常会从领域类中衍生出元模型,通过创建元模型会释放出Querydsl的全部能量,尤其是在属性的类型安全以及关键字引用方面。衍生机制基于Java6的注解处理工具(APT),能够挂接到编译器中并对源码甚至编译后的class文件进行处理。Querydsl提供了这种机制,可以通过maven或gradle插件生成查询类代码。这里使用gradle描述如何生成查询类。
gradle官网有两款插件,经测试com.ewerk.gradle.plugins:querydsl
没有问题,脚本如下:
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.9" }}apply plugin: "com.ewerk.gradle.plugins.querydsl"querydsl { // we use mongodb springDataMongo = true querydslSourcesDir = "$buildDir/generated/source/apt/main"}
配置脚本后,需要增加相关依赖。
compile group: 'com.querydsl', name: 'querydsl-mongodb', version: '4.1.4'compile group: 'com.querydsl', name: 'querydsl-apt', version: '4.1.4'
idea环境配置
让idea启用Enable annotation processing。
Default Settings -> Build,Execution,Deployment -> Compiler -> Annotaion Processors
进入配置界面后,配置如下:
- 启用Enable annotation processing
- Store generated sources relative to: Module content root
生成查询类
经上述配置后,编译代码时,会在输出目录build中查看已经生成的查询类。
- QueryDsl查询mongodb数据1
- QueryDsl查询mongodb数据2
- QueryDSL JPA 查询示例
- Querydsl
- MongoDB数据查询
- MongoDB查询数据
- MongoDB中的数据查询
- MongoDB中的数据查询
- 3.MongoDB数据查询
- mongodb 查询数据
- QueryDSL 简单的查询语句应用
- java使用querydsl(代替sql)查询数据库
- Mongodb查询数据 更新数据
- mongodb数据查询(进阶篇)
- mongodb根据_id查询数据
- MongoDB数据查询,分页,排序
- MongoDB 查询昨日/昨天数据
- MongoDB只查询数据第1个元素
- home键监听
- AspectJ 生成的代码粗读
- SAAS,PAAS IAAS
- 二组作业完成情况
- 数据节点操作
- QueryDsl查询mongodb数据1
- 吴恩达机器学习——我的错题集(持续更新)
- Ribbon负载均衡策略配置
- 自动关机HTA桌面小程序实现源码
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- Spring Boot: Building a RESTful Web Service
- react_basic(3)
- 《Effective C++》条款25:考虑写出一个不抛异常的swap函数
- QoS/ToS/CoS/DSCP 介绍