使用Spel进行高级搜索的标准Api或@Query注释?

时间:2017-11-01 19:05:33

标签: java spring hibernate spring-boot spring-data-jpa

我正在构建一个高级搜索功能,我考虑将Spring Expression Lanugage与@Query(JPQL / HQL)或Criteria API一起使用。我不想使用Query DSL。你觉得怎么样,哪个更好?这些限制是什么?

1 个答案:

答案 0 :(得分:1)

HQL更容易阅读,更容易调试,而Criteria查询用于构建动态查询,其中许多行为是在运行时确定的。因此,如果您确切知道自己想要什么,那么首选HQL。

但是,在搜索功能上,用户可以输入1到40个项目中的任何一个,但我们不知道他们将要搜索的内容。因此,更容易追加标准。