在经历JPA,QueryDSL的同时,他们都包含了类型安全查询的概念。但究竟是什么呢?根据博客/文章,我想这是JPA/QueryDSL的一个特性,它在查询时验证它们的参数类型。任何查询错误都会在编译时显示,而不是运行时。我对吗?仅仅是为了这个还是我在这里错过了一些东西?类型安全查询究竟意味着什么?
5
A
回答
5
4
如果API利用编程语言的类型系统来防止类型错误,则它是类型安全的。具体而言,QueryDSL使编译器来验证存在
- 在查询中使用的所有类(没有错字...)和是持久的(即,映射到一个数据库)
- 在查询中使用的所有属性存在该对象,并且是持久
- 所得查询语法有效的(没有缺失条款或关键字)
- 所有运营商收到一个可接受的类型的操作数
此外,表达式查询api使您的IDE能够提供代码完成(也适用于域类及其属性)和重构支持(如果属性被重命名,您可以在元模型中重命名它,并且IDE将在所有查询中重命名)。
作为一个好处,编写包含SQL注入漏洞的查询是非常困难的。
简而言之,使用QueryDSL而不是JPQL(或者在没有静态元模型的情况下使用JPA critieria查询)可以更快,更不容易出错地编写或更改查询。
相关问题
- 1. 网络安全字体 - 究竟意味着什么?
- 2. “云计算”究竟意味着什么?
- 3. AspNetCompatibilityRequirements究竟意味着什么?
- 4. Cocoapods平台,究竟意味着什么?
- 5. “带外库”究竟意味着什么?
- 6. xmlns =“”究竟意味着什么
- 7. flex标签究竟意味着什么?
- 8. TE和NT究竟意味着什么
- 9. Composable究竟意味着什么?
- 10. jquery:“$(this)”究竟意味着什么?
- 11. struct.calcsize('P')究竟意味着什么?
- 12. UrlReferrer究竟意味着什么?
- 13. “有效”究竟意味着什么
- 14. @Secured({“ROLE_USER”,“ROLE_ADMIN”})究竟意味着什么
- 15. 这究竟意味着什么?
- 16. 响应者究竟意味着什么?
- 17. max_connections究竟意味着什么?
- 18. 异步NSUrlConnection究竟意味着什么?
- 19. curlopt_binarytranfer究竟意味着什么?
- 20. “就地”究竟意味着什么?
- 21. 这个内部连接查询究竟意味着什么?
- 22. .Net中的自描述类型究竟意味着什么?
- 23. 泛型<?>究竟意味着什么?
- 24. 什么是printf定义中的__format究竟意味着什么?
- 25. 什么不透明的内容究竟意味着什么?
- 26. XCode说一些C程序可能不安全?这究竟意味着什么?
- 27. 那么“return 0”究竟意味着什么呢?
- 28. 究竟是“抛出”意味着OOP
- 29. 安装./setup.py安装的--install-base参数究竟意味着什么?
- 30. “无格式输入函数”究竟意味着什么?
哇..很好的解释兄弟你清理我的困惑......谢谢利奥.. –