问题标签 [querydsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-data - QueryDSL - 在 FROM 语句中添加子查询
我需要实现 sql 查询,例如:
如何使用 QueryDSL 编写这样的语句(我没有使用 JPA 和 JDO - 只使用干净的 sql)?
querydsl - QueryDSL 中的日期算术
我想在 QueryDSL 中表达以下(Oracle)查询:
即我想做日期算术。不幸的是,a com.mysema.query.types.path.DateTimePath
(由 返回QEntity.entity.created
)不包含任何加法/减法方法,仅用于比较(如before
or gt
)。
我找到com.mysema.query.types.Ops.DateTimeOps
了,但也没有什么可以帮助我。
我错过了什么还是 QueryDSL 不支持日期算术?
jakarta-ee - slf4j-api 冲突
我正在使用 querydsl(取决于 sl4j-api 1.6)和 arquillian-persistence-api(取决于 slf4j-jdk14 1.5.6)。如果我在 Maven 中忽略旧版本 1.5.6,我会在 JBoss 上收到以下消息
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
我正在使用带有托管 JBoss AS 7.1 的 arquillian 进行测试(Maven 从 maven Central 下载版本并运行测试)。我也在使用 arquillian persistence api。
我应该怎么做才能更正给定的警告?我的意思是我应该保留哪个依赖项,或者我将如何让两者正常工作?
我想这就是为什么我没有收到关于 arquillian persistence api 失败的任何错误消息(因为记录器不工作?)。
spring-security - Spring Data JPA 和 spring-security:数据库级别的过滤器(尤其是分页)
我正在尝试使用注释和 spring-security 为我的开源项目添加方法级别的安全性。我现在面临的问题是 findAll 方法,尤其是用于分页的方法(例如返回页面)。
使用 @PostFilter 对列表有效(但我个人认为在应用程序而不是数据库中过滤不是一个好主意),但在分页查询上完全失败。
这是有问题的,因为我有一个包含List<Compound>
. 复合有不同的实现,用户可能只有读取其中一个复合的权限。复合使用TABLE_PER_CLASS
继承。存储库实现QueryDslPredicateExecutor
.
我的想法是为每个查询添加一个谓词,根据当前用户限制返回结果。但是我有点迷失了a)用户和角色的数据模型应该如何看待以及b)然后如何创建谓词(一旦定义了模型,这可能很容易)。或者 querydsl 是否已经提供基于类型的过滤(在查询类中包含的元素上)?
java - 是否可以在不生成查询类型的情况下使用 Querydsl?
例如,无需生成元模型即可使用 JPA Criteria API。类型安全丢失了,但我可以在没有数据模型的先验知识的情况下仅在运行时使用反射来创建查询。我想以同样的方式使用 Querydsl。我不关心类型安全,因为无论如何我都不知道数据模型。
在我最近的项目中,我想使用 Querydsl 主要是因为它构成了持久性的另一层。所以我希望可以在JPA、JDO、JDBC、Lucene、Hibernate Search、MongoDB、Collections 和 RDFBean上使用相同的查询。
或者是否有任何可以以所述方式使用的 Querydsl 替代方案?
由于 NoSQL 数据库正在兴起。是否有任何其他框架在各种持久性提供程序上构成类似的抽象层?
java - QueryDSL:从谓词(BooleanExpression)对象中提取表名
一种方法正在动态构建一个Predicate
s 列表,该列表稍后将传递给数据库服务对象。为了基于谓词列表创建表连接,我需要确定每个谓词的基础生成类 Q*。在谓词上调用getType()
orgetClass()
没有帮助。
这就是我构建谓词的方式:
查询构建代码:
querydsl - QueryDSL:从 PathBuilder 生成谓词
如何用 PathBuilder 替换以下使用生成的 Q* 类和 java 反射的方法?
这很好用,但我被建议使用 PathBuilder 来回答我的其他问题https://stackoverflow.com/questions/15269845/querydsl-extract-table-name-from-predicate-booleanexpression-object)这也将删除尴尬的 newInstance(tableName +"1000")。
两个问题:1)我现在可以在关系上调用 eq() 或 ne(),但不能调用 like()、notLike() 2) 如何获取 colObj 以便可以使用 java 反射 colObj.getClass().getMethod(. ..)
解决方案: 感谢 Timo 的回答,除了两个 instanceof 条件外,我完全放弃了反射,现在使用此代码:
java - 在带有 Spring Data 的 Mongo 实体中使用 jodatime
我有一个实体,它将与 Spring Data 一起保存到 Mongo 数据库:
这是我的存储库:
以及我的 pom.xml 中用于 QueryDSL 生成的插件
尽管如此,它将 DateTime 视为常规实体(我尝试过使用和不使用 QueryType)。我希望它被视为日期,所以我可以进行比较,因为现在我不能:
当然,如果可能的话,我想坚持使用 JodaTime,而不是回退到 Java Date,或者将日期存储为毫秒。
java - 对来自多个数据源的结果进行连接、过滤和分页
我们现有的 Java 应用程序直接构建在 Spring Data/JPA/Hibernate 之上,用于数据访问。在大多数情况下,对象由 Spring Repositories 执行 JPQL 查询来补充。当需要更动态的查询和排序时,我们也依赖 QueryDSL。Spring Data 与 QueryDSL 配合得非常好,并且您使用 Spring Data 获得的所有漂亮的分页/排序都可以继续正常工作。
我们目前正在将现有系统扩展为一些数据在数据库中而其他数据通过 RESTful 服务持久化的系统。出现的问题是如何在处理多个持久数据源时有效地加入、过滤、排序和分页。来自一个来源的数据可以通过其主键引用来自另一个来源的数据,显然没有完整性约束。
我查看了诸如 QueryDSL for collections、Quaere、jaque、SBQL4J 和 lambdaj 之类的东西,但得出的印象是来自所有数据源的所有数据都必须加载到内存中才能进行连接、过滤、排序和分页 -效率不高,尤其是对于网络应用程序。当然,可以通过 JPQL 过滤一些数据,例如,以稍微减少内存使用量的影响,但这仍然很臭。
问:是否有任何可用的库可以优雅地处理这种异构数据源和技术的场景?
hibernate - QueryDSL Hibernate:按交集排序
我有一个 0-n 喜欢的实体编码器。我的查询包括,给定一个名为 A 的编码员,查找所有至少有一个共同爱好的编码员,按与 A 的共同爱好的降序排列。这是到目前为止的样子:
有没有办法通过 QueryDSL 来实现指定定制订单?我没有在ListPath
. 如果是这样,我可以使用 Guava 来计算交集。
提前致谢,
罗尔夫