我将开始一个新项目,该项目将使用非常大的数据库,因此会有大量的数据库操作。
我决定使用 Spring JPA 作为我的 ORM。现在 Spring JPA 提供了在 DAO 层中使用的各种技术。我对 Criteria builder 和 Query DSL 感到困惑。两者似乎都很好地解决了我的问题,我想在同一个项目中使用它们没有意义,因为它们提供相同的功能。
那么现在使用哪一个,为什么?
我将开始一个新项目,该项目将使用非常大的数据库,因此会有大量的数据库操作。
我决定使用 Spring JPA 作为我的 ORM。现在 Spring JPA 提供了在 DAO 层中使用的各种技术。我对 Criteria builder 和 Query DSL 感到困惑。两者似乎都很好地解决了我的问题,我想在同一个项目中使用它们没有意义,因为它们提供相同的功能。
那么现在使用哪一个,为什么?
JPA 2 Criteria API 和 Querydsl 在功能上是等效的,但 Querydsl 被设计得更流畅,看起来更像 JPQL/SQL。因此它可以用作 JPQL 和 JPA 2 Criteria 的替代品。
这里还有一篇关于该主题的博文,展示了与 JPA 2 Criteria API Querydsl 作为 JPA 2 Criteria API 的替代方案相比,Querydsl 查询的紧凑程度如何
这个答案是有偏见的,因为我支持 Querydsl。