是否可以在JPQL中編寫&調用用戶定義的函數?在JPQL中編寫和調用用戶定義的函數?
回答
它不受JPA規範本身的支持,但是,某些JPA實現可能會提供這樣的擴展。
例如,在Hibernate中,您可以繼承Dialect
的子類,並通過調用registerFunction()
來定義海關SQL函數。許多方言特定的功能已經以這種方式定義。
是否可以在JPQL中編寫&調用用戶定義的函數?
簡短的回答 -
長的答覆號是原生功能無法在JPQL查詢被引用,作爲JPQL是一個非常明確的語法。例如,JPQL查詢的SELECT子句在JPA規範使用BNF符號定義如下:
select_clause :: = SELECT [DISTINCT] select_item {,select_item} *
select_item :: = select_expression中[[AS] result_variable]
select_expression :: = single_valued_path_expression | scalar_expression |聚合表達式| identification_variable | OBJECT(identification_variable)| constructor_expression
constructor_expression :: = NEW constructor_name(constructor_item {, constructor_item} *)
constructor_item :: = single_valued_path_expression |標量表達式 |聚合表達式| identify_variable
aggregate_expression :: = {AVG | MAX | MIN | SUM}([DISTINCT] state_field_path_expression)| COUNT([DISTINCT] identification_variable | state_field_path_expression | single_valued_object_path_expression)
其他發言以類似的方式定義。可以注意到唯一允許的函數是AVG,MAX,MIN,SUM和COUNT,它們必須在聚合表達式的上下文中出現。 JPQL語法中沒有用戶定義函數的範圍,因此必須使用本機SQL查詢來調用數據庫中存在的用戶定義函數。
- 1. 編寫用戶定義函數
- 2. 在Oracle用戶定義的函數中編寫select語句
- 3. 調用SQL用戶定義函數中其他用戶定義函數
- 4. 在jQuery中定義和調用函數
- 5. 在jquery中定義和調用函數
- 6. 在Python中定義和調用函數
- 7. 調用用戶定義的C函數
- 8. 調用用戶定義函數中的子例程和值(Excel)
- 9. 在C編寫SQLServer用戶定義函數#
- 10. 定義和調用自定義函數
- 11. 調用用戶定義函數從JavaScript
- 12. 調試PostgreSQL用戶定義的函數
- 13. pyspark地圖用戶定義的函數編寫外腳本
- 14. 在另一個用戶定義的函數中調用用戶定義的函數時發生名稱錯誤
- 15. 調用和編寫jQuery/javascript函數
- 16. 調用在淡出用戶定義函數回調參數()
- 17. 如何在Hive中調用用戶定義的函數?
- 18. 在CakePHP中調用MySQL用戶定義的函數3
- 19. 在LINQ查詢中調用用戶定義的函數
- 20. 在PHP中調用用戶定義的函數eval()
- 21. 在jquery中調用兩個用戶定義的函數
- 22. 在LINQ查詢中調用SQL用戶定義的函數
- 23. 在推動中調用用戶定義的函數
- 24. 如何在C++中調用用戶定義的函數?
- 25. 用戶參數定義中的調用函數
- 26. 是否可以在C#中調用用戶定義的(自定義)R函數?
- 27. 的SyntaxError而定義和調用函數
- 28. VBA:如何在Excel宏中調用用戶定義函數
- 29. 在vba中調用(用戶自定義)函數稱爲LINTERP
- 30. 如何在SQLite中調用用戶定義函數?