Come posso utilizzare CONCAT()
e GROUP_CONCAT()
nelle query HQL?Hibernate: come utilizzare CONCAT e GROUP_CONCAT
risposta
Informazioni su concat
: funziona esattamente allo stesso modo in MySQL (concatena stringhe, non è una funzione di aggregazione).
È possibile aggiungere group_concat
come una funzione sql alla configurazione. In questo modo si presuppone che il DB sottostante conosca questa funzione e si leghi il programma a 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()));
È inoltre indicano che l'uscita della funzione è una stringa. Senza questo quando i campi numerici group_concat
Hibernate presuppongono che il risultato sia numerico e crash.
sottoclasse dialetto
e
registerFunction("group_concat", new StandardSQLFunction("group_concat", Hibernate.STRING));
o utilizzare SQLFunctionTemplate
Se si utilizza createSQLQuery, utilizzare addScalar a quella colonna come stringa.
SQLQuery query = sessionObj.createSQLQuery("select group_concat(column1,column2) as mycolumn from some table group by someThing");
query.addScalar("mycolumn ", Hibernate.STRING);
'Hibernate.STRING' è stato deprecato da Hibernate versione 3.6.X [Ecco il documento deprecato] (https://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Hibernate.html) , quindi devi usare 'StringType.INSTANCE'. –
- 1. Come utilizzare group_concat in un CONCAT in MySQL
- 2. SQLite: group_concat() più colonne
- 3. Concatenazione di stringhe in Java - quando utilizzare +, StringBuilder e concat
- 4. Come utilizzare funzioni come CONCAT(), ecc. In ARel?
- 5. gruppi CONCAT in SQL Server
- 6. MySQL Group_Concat Valori ripetuti
- 7. Quando utilizzare @Version e @Audited in Hibernate?
- 8. Come utilizzare Realm asObservable con l'operatore concat() di RxJava?
- 9. Come utilizzare StatelessSession con Spring Data JPA e Hibernate?
- 10. GROUP CONCAT non funziona per qualche motivo
- 11. Group_concat - laravel eloquent
- 12. Come quotare valori usando group_concat
- 13. Postgresql GROUP_CONCAT equivalente?
- 14. Mongodb concat int e stringa
- 15. Utilizzando COUNT in group_concat
- 16. JOIN e group_concat con tre tavoli
- 17. Come utilizzare il metodo setParameterList() in Hibernate?
- 18. mysql GROUP_CONCAT duplicati
- 19. group_concat virgola separatore - MySQL
- 20. Quando utilizzare le proiezioni Hibernate?
- 21. condizioni in MySQL group_concat
- 22. group_concat Sqlite ordinare
- 23. "Reverse GROUP_CONCAT" in MySQL?
- 24. Tagging query con group_concat
- 25. group_concat equivalente in Django
- 26. Replica group_concat per pandas.DataFrame
- 27. Come evitare la duplicazione in GROUP_CONCAT?
- 28. ForEach Concat
- 29. mapcat usando la mappa e concat
- 30. può utilizzare contemporaneamente il pool di Hibernate e Tomcat Connection?
+1 per aver menzionato te stesso a mysql. group_concat non è disponibile in, ad esempio, Microsoft SQL Server. Hibernate mira a essere indipendente dal produttore sql. – Terraego