jpa 为什么使用Querydsl?[已关闭]

nbewdwxp  于 2023-02-16  发布在  其他
关注(0)|答案(2)|浏览(127)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

三年前关闭了。
Improve this question
我是JPAJPQLHibernateQuerydsl的新手,现在我看到在我的项目中使用Querydsl进行查询,我想知道为什么选择这种方法。所以你可以确定为什么在我的项目中使用这种方法,但是你可以知道为什么以及在什么情况下首选Querydsl。为什么我们可以使用简单的JPQL语句?

zf9nrax1

zf9nrax11#

  • 可以在IDE中使用代码完成
  • IDE重构工具工作(或多或少)
  • 类型安全的
  • (几乎)语法安全
  • 编译器在编译时生成错误类型等错误,而Hibernate仅在第一次运行时抱怨
  • 一致性,您可以使用相同的原则来查询JPA、MongoDB、Collections...
epfja78i

epfja78i2#

我想对QueryDSL的用法做一个对比。
我不喜欢使用QueryDSL,原因如下:

  • 您需要经常编译项目以保持Q类的更新
  • 您需要设置IDE以将在target上生成的Q类视为普通类。
  • 我已经看到IDE“迷路”,不再识别Q
  • 我已经创建了简单的QueryDSL语句,它们生成了非常奇怪且不可预测的SQL

即使对最终用户来说很友好,我还是更喜欢使用JPQL,因为它更接近生成的SQL,而且更可预测。
但与Criteria相比,我更喜欢QueryDSL。

相关问题