Sự khác nhau giữa truy vấn, truy vấn gốc, truy vấn được đặt tên và truy vấn đã nhập là gì? Liệu truy vấn 'một mình' có tồn tại hay chỉ là một từ viết tắt? Trong tâm trí của tôi, một Query gốc là một truy vấn được viết bằng sql đơn giản, trong khi một truy vấn được đặt tên có liên quan đến các thực thể (hibernate-mapping). Ai đó có thể giải thích điều này một thời gian ngắn?Sự khác biệt giữa truy vấn, truy vấn gốc, truy vấn được đặt tên và truy vấn đã nhập
Trả lời
Query
Query đề cập đến JPQL/HQL truy vấn với cú pháp tương tự như SQL thường được sử dụng để thực hiện báo cáo DML (hoạt động CRUD).
Trong JPA, bạn có thể tạo truy vấn bằng cách sử dụng entityManager.createQuery()
. Bạn có thể xem xét API để biết thêm chi tiết.
Trong Hibernate, bạn sử dụng session.createQuery()
"
NativeQuery
truy vấn Native đề cập đến các truy vấn sql thực tế (đề cập đến đối tượng cơ sở dữ liệu thực tế). Những truy vấn là các câu lệnh SQL có thể được thực hiện trực tiếp trong cơ sở dữ liệu sử dụng ứng dụng khách cơ sở dữ liệu.
JPA: entityManager.createNativeQuery()
Hibernate (triển khai không JPA): session.createSQLQuery()
NamedQuery
Tương tự như cách hằng số được định nghĩa. NamedQuery là cách bạn xác định truy vấn của bạn bằng cách đặt tên cho nó. Bạn có thể định nghĩa điều này trong tệp ánh xạ trong chế độ ngủ đông hoặc cũng sử dụng các chú thích ở cấp thực thể.
TypedQuery
TypedQuery cung cấp cho bạn một tùy chọn để đề cập đến các loại thực thể khi bạn tạo một truy vấn và do đó bất kỳ hoạt động sau đó không cần một diễn viên rõ ràng để loại dự định. Trong khi API bình thường Query
không trả lại loại đối tượng chính xác mà bạn mong đợi và bạn cần truyền.
- 1. sự khác biệt giữa qs và truy vấn
- 2. "Truy vấn được đặt tên không được biết" cho truy vấn Hibernate có tên?
- 3. Merge truy vấn vào một truy vấn
- 4. Truy vấn gốc được đặt tên theo kiểu trong Hibernate
- 5. Truy vấn Elasticsearch_string truy vấn lồng nhau
- 6. Truy vấn ghi nhật ký truy vấn chậm của MySQL ghi nhật ký truy vấn nhanh
- 7. Truy vấn được chuẩn bị và truy vấn được xây dựng
- 8. Viết truy vấnTruy vấn truy vấn vị ngữ cho truy vấn dựa trên quan hệ OneTany
- 9. MySQL - UPDATE truy vấn dựa trên Truy vấn SELECT
- 10. Truy vấn được đặt tên JPA và API tiêu chí?
- 11. CodeIgniter: Cách Thực hiện Truy vấn MySQL (Tên riêng biệt) Truy vấn MySQL
- 12. Điểm số liên tục Truy vấn elasticsearch truy vấn
- 13. Truy vấn SQL phân biệt giữa ß và ss
- 14. Cách thích hợp để lọc truy vấn bằng Elasticsearch? (bộ lọc vs truy vấn đã lọc)
- 15. SPARQL truy vấn và đếm riêng biệt
- 16. Truy vấn Firebase cháu/truy vấn đa cấp
- 17. truy vấn tên không biết
- 18. Sự khác biệt về kế hoạch truy vấn SQL Server
- 19. Sự khác nhau giữa các truy vấn LINQ
- 20. LINQ biệt và chọn mới truy vấn
- 21. JQL: Lọc truy vấn khác
- 22. Elasticsearch Truy vấn đã lọc và Bộ lọc
- 23. Sự khác nhau giữa các truy vấn SQL là gì?
- 24. Truy vấn chuỗi truy vấn Elasticsearch không bằng?
- 25. Xem truy vấn SQL cho bộ truy vấn Django xóa
- 26. Truy vấn sqlite trong android (chèn truy vấn)
- 27. SQL - Kết hợp nhiều truy vấn như truy vấn
- 28. Một truy vấn lớn so với nhiều truy vấn nhỏ?
- 29. truy vấn cập nhật mysql với truy vấn phụ
- 30. truy vấn addobserver/removeobserver
Có hiệu suất, thông lượng, mức tiêu thụ bộ nhớ, sự khác biệt về máy chủ ứng dụng tải giữa các truy vấn khác nhau không? Tôi nghĩ rằng tiêu thụ bộ nhớ NamedQuery lớn hơn truy vấn, nhưng tôi không thể nói giới hạn của các truy vấn để lựa chọn ủng hộ cái nào hay cái khác. Bạn có thể giải thích? cảm ơn trước – Joe