当前位置: 首页 > 知识库问答 >
问题:

是否可以在不生成查询类型的情况下使用Querydsl?

伯庆
2023-03-14

例如,JPA标准API可以在没有生成元模型的情况下使用。失去了类型安全性,但我可以在运行时仅使用反射来创建查询,而无需事先了解数据模型。我想以同样的方式使用Querydsl。我不关心类型安全问题,因为我不知道数据模型。

在我最近的项目中,我想使用Querydsl,主要是因为它构成了持久性之上的另一层。所以我希望可以在JPA、JDO、JDBC、Lucene、Hibernate Search、MongoDB、Collections和RDFBean上使用相同的查询。

或者是否有任何可供选择的Querydsl可以被描述的方式使用?

共有1个答案

夹谷苗宣
2023-03-14

有两种方法可以在不生成元模型的情况下使用Querydsl。

第一种方法是手动构造表达式http://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch03.html#D0E1379

二是使用Querydsl的别名功能http://www.Querydsl.com/static/Querydsl/2.9.0/reference/html/ch02s07.html

Querydsl查询共享公共接口并且看起来很相似,但是您不能直接在不同的持久性类型上使用相同的查询,因为Querydsl不提供任何跨模块的查询抽象。

查询的各个部分可以共享,例如谓词或投影,但查询绑定到某个模块。

您可以做的是坚持使用常见的持久性抽象之一JPA或JDO,并通过它们使用RDBMS、OODB和NoSQL引擎。

 类似资料:
  • 问题内容: 我正在评估JOOQ是否可在仍在开发中的新系统中使用。我想避免在与应用程序一起开发数据库时生成代码,而只是为该应用程序起持久存储的作用。因此,预计数据库模式定义将由Java代码(java中的表定义)驱动。 JOOQ是否适合上述用例?是否有用于模式定义的Java DSL? 问题答案: JOOQ是否适合上述用例? 是的,许多jOOQ用户仅使用运行时库,而没有代码生成器。入门指南中提供了示例。

  • 我正在评估JOOQ在一个仍在开发中的新系统中的使用情况。当数据库与应用程序一起开发时,我希望避免代码生成,而只是在这个应用程序中扮演持久存储的角色。因此,数据库模式定义应该由Java代码(Java中的表定义)驱动。 JOOQ是否适用于上述用例?是否有用于模式定义的JavaDSL?

  • 问题内容: 如果要使用Linq-SQL,还必须将DB Table拖到设计器表面以创建实体类。 我一直喜欢我的应用程序中的完全控制权,并且不喜欢dotnet创建的类。 是否可以使用我自己的数据访问层实体类在Linq和DB之间提供此连接? 我该如何完成? 问题答案: 您可以使用Linq-to-SQL非常轻松地编写自己的类-只需使用一些属性绘制类即可。 例如,这是我的一个项目中有一个非常简单的表,它可以

  • 我需要从我的中生成一个文件,但我希望避免创建。有可能吗?

  • (是的,这是hacky,可能不是最佳实践,但它是体积最小的解决方案) 我有一个涉及几个jar的项目——一个可运行的启动器、一个服务器、一个服务器的包装器和服务器的插件。 启动器通过启动一个新的未连接的进程、一个子进程或者只是实例化它来运行包装器,这取决于配置。对于这个问题来说,这应该不重要。 包装器使用URLClassLoader来加载服务器jar并启动它,这工作正常。 在启动服务器之前,包装器会

  • 是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误