在經歷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. 「無格式輸入函數」究竟意味着什麼?
哇..很好的解釋兄弟你清理我的困惑......謝謝利奧.. –