Tôi làm cách nào để sử dụng các truy vấn CONCAT()
và GROUP_CONCAT()
trong truy vấn HQL?Hibernate: cách sử dụng CONCAT và GROUP_CONCAT
Trả lời
Giới thiệu concat
: nó hoạt động chính xác theo cách tương tự như trong MySQL (nó nối chuỗi, nó không phải là hàm tổng hợp).
Bạn có thể thêm group_concat
làm chức năng sql vào cấu hình của mình. Bằng cách này, bạn giả định rằng DB underlaying biết hàm này và bạn buộc chương trình của mình thành MySQL.
import org.hibernate.cfg.Configuration;
import org.hibernate.dialect.function.StandardSQLFunction;
import org.hibernate.type.StringType;
// ...
myConf.addSqlFunction("group_concat", new StandardSQLFunction("group_concat", new StringType()));
Bạn cũng chỉ ra rằng đầu ra của hàm là một chuỗi. Nếu không có điều này khi bạn group_concat
trường số Hibernate sẽ giả định kết quả cũng là số và sự cố.
subclass phương ngữ
và
registerFunction("group_concat", new StandardSQLFunction("group_concat", Hibernate.STRING));
hoặc sử dụng SQLFunctionTemplate
Nếu bạn đang sử dụng createSQLQuery, sử dụng addScalar để cột đó là String.
SQLQuery query = sessionObj.createSQLQuery("select group_concat(column1,column2) as mycolumn from some table group by someThing");
query.addScalar("mycolumn ", Hibernate.STRING);
'Hibernate.STRING' đã không còn được dùng kể từ phiên bản Hibernate 3.6.X [Đây là tài liệu không được chấp nhận] (https://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Hibernate.html) , vì vậy bạn phải sử dụng 'StringType.INSTANCE'. –
- 1. Làm thế nào để sử dụng GROUP_CONCAT trong một CONCAT trong MySQL
- 2. Sử dụng COUNT GROUP_CONCAT
- 3. mapcat sử dụng bản đồ và concat
- 4. Cách báo giá trị sử dụng group_concat
- 5. Cách sử dụng hibernate bằng() và hashCode()?
- 6. Sử dụng MYSQL GROUP_CONCAT trong mệnh đề WHERE
- 7. Sử dụng, concat, concat_ws nào? trong mysql
- 8. Sử dụng + để concat chuỗi trong Java
- 9. MySQL GROUP_CONCAT nhiều trường
- 10. SQLite: group_concat() nhiều cột
- 11. MySQL GROUP_CONCAT với Nulls
- 12. nhóm concat trong SQL Server
- 13. CÁCH SỬ DỤNG CÓ COUNT (*) với hibernate
- 14. Sử dụng hàm mysql concat() trong mệnh đề WHERE?
- 15. Cách xóa hàng riêng lẻ khỏi GROUP_CONCAT?
- 16. mysql GROUP_CONCAT
- 17. Mysql IF IN GROUP_CONCAT ngắt
- 18. Nhận thêm dấu phẩy ',' trong khi sử dụng concat
- 19. Sử dụng php để trả về các giá trị GROUP_CONCAT ('cột x')
- 20. JOIN và GROUP_CONCAT với ba bảng
- 21. hibernate restrict.in với và, làm thế nào để sử dụng?
- 22. Sử dụng CMake, làm thế nào tôi có thể concat tập tin và cài đặt chúng
- 23. Giao dịch lồng nhau sử dụng Spring và Hibernate
- 24. GROUP_CONCAT dấu phẩy phân cách - MySQL
- 25. MySQL - CONCAT hai trường và sử dụng chúng trong mệnh đề WHERE
- 26. sử dụng log4j với hibernate và glassfish 3.0.1
- 27. Khi nào sử dụng @Version và @Audited in Hibernate?
- 28. Hibernate và JPA, những gì để sử dụng, ở đâu?
- 29. Postgresql GROUP_CONCAT tương đương?
- 30. Cách thực hiện truy vấn Hibernate bằng cách sử dụng like và%?
+1 để đề cập đến bạn tự buộc mình vào mysql. group_concat không có sẵn trong, nói, máy chủ sql microsoft. hibernate nhằm mục đích để được nhà cung cấp sql độc lập. – Terraego