在通过JPA,QueryDSL时,他们都包含了类型安全查询的概念。但究竟是什么呢?根据博客/文章,我想JPA / QueryDSL的一个功能是在进行查询时验证它们的参数类型。而且查询的任何错误都会在编译时而不是运行时显示出来。我对吗?这只是为了这个还是我在这里错过了什么?
答案 0 :(得分:8)
如果API利用编程语言的类型系统来防止类型错误,则API是类型安全的。具体来说,QueryDSL使编译器能够验证
此外,富有表现力的查询api使您的IDE能够提供代码完成(也适用于域类及其属性)和重构支持(如果重命名属性,您只需在元模型中重命名它,IDE将重命名在所有查询中。)
作为附带好处,编写包含SQL注入漏洞的查询非常困难。
简而言之,在没有静态元模型的情况下使用QueryDSL而不是JPQL(或JPA critieria查询)可以更快地编写或更改查询,并且不易出错。
答案 1 :(得分:7)