前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >聊聊querydsl的生成类

聊聊querydsl的生成类

作者头像
code4it
发布于 2018-09-17 07:24:45
发布于 2018-09-17 07:24:45
1.5K00
代码可运行
举报
文章被收录于专栏:码匠的流水账码匠的流水账
运行总次数:0
代码可运行

本文主要聊一下querydsl的生成类

maven

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-sql</artifactId>
            <version>4.1.4</version>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>4.1.4</version>
        </dependency>
        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
            <version>4.1.4</version>
        </dependency>

plugin

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            <plugin>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources</outputDirectory>
                            <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

生成Q类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mvn compile

不过由于是生成在target里头的,整体感觉对IDE不是太友好,另外这种生成代码的方式,有点鸡肋,每当修改字段或者增删字段时,就得重新生成一次,非常费劲。如果要生成,还是基于字节码动态生成的靠谱一点,至少方便一些。

手写Q类

对于字段少的类,可以自己手写,Q类,如下: ``` @Generated(“com.querydsl.sql.codegen.MetaDataSerializer”) public class QDemo extends RelationalPathBase {

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public final NumberPath<Long> id = createNumber("id",Long.class);
public final NumberPath<Long> countNum = createNumber("countNum",Long.class);
public final StringPath  name = createString("name");

public static QDemo qDemo = new QDemo(QDemo.class.getSimpleName(),null,"demo");

public QDemo(String path, String schema, String table){
    super(Demo.class, path, schema, table);
    addMeta();
}

public void addMeta(){
    addMetadata(countNum, ColumnMetadata.named("count_num"));
    addMetadata(name, ColumnMetadata.named("name"));
}

} ```

小结

querydsl强大是强大,但是Q类这么一搞,有点搞复杂了,想完全屏蔽sql是不可能的,有一定适用场景,但不是万能。

doc

  • querydsl
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
LeetCode 141.环形链表 - JavaScript
Floyd 判圈算法类似龟兔赛跑,需要用到快指针 fast 和慢指针 slow。算法流程是:
心谭博客
2020/04/21
4320
每天一道leetcode141-环形链表
题目 每天一道leetcode141-环形链表 分类:链表 中文链接: https://leetcode-cn.com/problems/linked-list-cycle/description/ 英文链接 https://leetcode.com/problems/linked-list-cycle/description/ 题目详述 给定一个链表,判断链表中是否有环。 进阶: 你能否不使用额外空间解决此题? 题目详解 思路 使用两个指针,一个快指针,一个慢指针; 快的每次走两步,慢的每次走一步
乔戈里
2019/09/17
2690
【小Y学算法】⚡️每日LeetCode打卡⚡️——38.环形链表
如果链表中有某个节点,可以通过连续跟踪 next指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
呆呆敲代码的小Y
2021/09/26
2910
【小Y学算法】⚡️每日LeetCode打卡⚡️——38.环形链表
LeetCode题解—链表中环的检测
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 pos为环的起点位置。
码上积木
2021/03/10
1.3K0
环形链表
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
_kyle
2020/11/26
6030
环形链表
LeetCode笔记 | 链表(ing)
思路如下: 0.利用递归首先找到单链表的最后一个节点; 最后一个节点存储在re里面, re在找到最后一个节点时被赋值且其永远为最后一个节点的值,保持不变; 从找到最后一个节点开始, 从最后往前的方向,每一层递归反转一对节点 / 一个指向;
凌川江雪
2019/10/24
4720
LeetCode笔记 | 链表(ing)
单链表之环形链表
不论在面试或者刷题过程中,很大概率都会遇到环形链表这种类型的题目,例如 leetcode 141. 环形链表 以及 leetcode 142. 环形链表 II 等,本文主要介绍通过快慢指针法来解决此类题型,以供大家参考。
程序员小熊
2021/05/28
5140
单链表之环形链表
LeetCode之链表(10)
今天有点闲,就来连刷几道题,下次不这样干了,有点hold不住,建议以后保持平衡刷题规律!
公众号guangcity
2019/09/20
4040
LeetCode之链表(10)
算法:链表之环形链表
该类题目的核心点在于如何判断是环形链表,核心思想是:两个人在环上跑步,跑的快的早晚会追上跑的慢的。
灰子学技术
2020/07/29
3570
算法:链表之环形链表
LeetCode:环形链表_141
注意:是慢指针正常速度,快指针两倍速度。不是快指针正常速度,慢指针1/2速度。不然会超时
Yuyy
2022/06/28
2390
LeetCode:环形链表_141
用python 判断一个单链表是否有环.
https://leetcode.com/problems/linked-list-cycle/
py3study
2020/01/06
1.3K0
漫画:不一样的链表成环检测!
今天为大家带来,链表检测成环的经典题目。如果你觉得你会了,请你不妨耐心些认真看下去,我相信会有一些不一样的收获!
程序员小浩
2020/03/31
8530
Js算法与数据结构拾萃(3):链表
对于一个数组,想要做篡改是复杂度是非常高的,设想你接到一个需求,让你记录存储一个人的简历,你用数组储存,可能是这样的:
一粒小麦
2020/02/25
6410
LeetCode 141:环形链表 Linked List Cycle
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
爱写bug
2019/07/16
3940
LeetCode 142:环形链表 II Linked List Cycle II
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
爱写bug
2019/07/17
5250
《剑指offer》第22天:链表成环的新解法
思路:通过hash表来检测节点之前是否被访问过,来判断链表是否成环。这是最容易想到的一种题解了。过于简单,直接上代码,go:
程序员小浩
2020/09/14
4871
常见编程模式之快慢指针
快慢指针方法,又称为龟兔赛跑算法,其基本思想就是使用两个移动速度不同的指针在数组或链表等序列结构上移动。这种方法对于处理「环形」链表或数组非常有用。以链表为例,通过以不同的速度移动,我们可以证明如果链表中存在环,则两个指针必定会相遇,当两个指针均处在环中时,快指针会追上慢指针(如下图所示)。
口仆
2020/08/28
5.1K1
【每日leetcode】14.环形链表
链表中节点的数目范围是 [0, 104] -105 <= Node.val <= 105 pos 为 -1 或者链表中的一个 有效索引 。
一条coding
2021/08/12
3320
【每日leetcode】14.环形链表
【一天一大 lee】环形链表II (难度:中等) - Day20201010
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
前端小书童
2020/10/26
2750
【一天一大 lee】环形链表II (难度:中等) - Day20201010
leetcode刷题(37)——141. 环形链表
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
老马的编程之旅
2022/06/22
2180
leetcode刷题(37)——141. 环形链表
推荐阅读
相关推荐
LeetCode 141.环形链表 - JavaScript
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档