【问题标题】:Is there a way to use HQL with MongoDB?有没有办法在 MongoDB 中使用 HQL?
【发布时间】:2014-08-13 12:49:29
【问题描述】:

我正在使用带有 spring-data 的 MongoDB,并且想知道这是否可能。我现在希望让我的应用程序与 MySQL 一起工作,并且在将来的某个时候我计划将它切换到 MongoDB。我想知道如果我现在将 HQL 与 MySQL 一起使用,并在稍后阶段将数据库切换到 MongoDB,它会工作吗?如果不能,我该怎么做才能最大限度地减少后期所需的更改?

谢谢!

【问题讨论】:

  • 从 MySQL 切换到 MongoDB 并不像您想象的那么容易。两个数据库的工作方式非常不同。要充分利用这两种数据库,您需要考虑它们在应用程序设计阶段的工作方式。当您希望应用程序最终使用 MongoDB 时,为什么不从一开始就为 MongoDB 开发呢?
  • 也许你应该重新表述你的问题......有没有办法将 JPA 与 MongoDB 一起使用?显然,DataNucleus JPA 仅是一个选项。 JPQL 将随之而来……但只有一小部分可用于 RDBMS 的操作

标签: java spring hibernate mongodb jpa


【解决方案1】:

HQL 仅特定于 Hibernate。 JPQL 是一种标准的 JPA 查询语言,但它并不支持所有 HQL 功能。

Spring Data 不使用 HQL,而是使用 JPQL。您可以定义一个 Common Repository 接口,该接口可由 MongoDB 存储库和 JPA 存储库实现。

但查询 Mongo 与 SQL 有很大不同,因此您可能只能重用相同的基本 CRUD 操作和方法名称的标准 Spring Data 查询转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多