È possibile utilizzare JPA per avere una funzione di aggregazione personalizzata che estenda concat() in modo che concateni i valori di una colonna in una stringa singola?JPA concatena i valori della colonna STRING in un singolo valore proprio come una funzione aggregata
JPA concatena i valori della colonna STRING in un singolo valore proprio come una funzione aggregata
risposta
Ho affrontato lo stesso problema di recente con il database JPA e H2. Ho provato a chiamare la funzione GROUP_CONCAT da JPQL con una funzione invocata (vedi sotto) senza successo. Infine, ho usato una chiamata di query nativa .
Tuttavia, lo JPA 2.1 specifications menziona che è possibile chiamare (funzione di chiamata) una funzione di database predefinita o definita dall'utente sia scalare che aggregata. Ho riprodotto in seguito il paragrafo dalla specifica per evidenziando la parte pertinente.
4.6.17.3 Invocazione di predefiniti e funzioni database definito dall'utente
L'invocazione di funzioni diverse dalle funzioni built-in del linguaggio di interrogazione Java Persistence è supportato mediante la sintassi
function_invocation
. Ciò include l'invocazione di funzioni di database predefinite e funzioni di database definite dall'utente.function_invocation::= FUNCTION(function_name {, function_arg}*) function_arg ::= literal | state_valued_path_expression | input_parameter | scalar_expression
L'argomento function_name è una stringa che indica la funzione del database che deve essere richiamata. Gli argomenti devono essere adatti alla funzione del database che deve essere invocata. Il risultato della funzione deve essere adatto al contesto di chiamata.
La funzione può essere una funzione definita dal database o una funzione definita dall'utente. La funzione può essere una funzione scalare o una funzione aggregata.
Le applicazioni che utilizzano la sintassi function_invocation non saranno trasferibili tra i database.
Esempio:
SELECT c FROM Customer c WHERE FUNCTION(‘hasGoodCredit’, c.balance, c.creditLimit)
Riferimento: Java Persistence 2.1, Final Release
- 1. valori della colonna Concatena come unico valore di SQL Server 2005
- 2. Concatena i valori sql a una variabile
- 3. Come limitare i valori per una colonna
- 4. query SQL per selezionare una colonna con espressione di valore non aggregata e funzione di aggregazione
- 5. Annotazioni JPA - Come recuperare un singolo valore da una tabella diversa dall'oggetto corrente?
- 6. Copia tutti i valori in una colonna in una nuova colonna in un dataframe panda
- 7. valori numerici Concatena in una stringa
- 8. Funzioni multiple in un singolo tocco o istruzione aggregata
- 9. Come richiedere i valori della mappa con Spring Data JPA?
- 10. Come posso sottrarre un singolo valore da una colonna con i panda e Python
- 11. R - corrispondenza a un valore combinando valori di una colonna
- 12. Calcolo vettorializzato del valore di una colonna in base a un valore precedente della stessa colonna?
- 13. SQL - Sottoquery in funzione aggregata
- 14. SQL: sommare i valori in una colonna
- 15. Seleziona tutti i valori distinti in una colonna utilizzando LINQ
- 16. Equivalente Sql Server di una funzione aggregata COUNTIF
- 17. SQL Server Concatena il valore della colonna stringa a 5 caratteri long
- 18. Come posso sommare i valori nella colonna in base al valore in un'altra colonna?
- 19. In Excel, somma tutti i valori in una colonna in ogni riga in cui un'altra colonna è un valore specifico
- 20. ggplot2: sfaccettatura su una funzione della colonna
- 21. Funzione aggregata su un dato intervallo di tempo
- 22. Come calcolare la funzione aggregata SUM su una colonna di alias?
- 23. Query aggregata e non aggregata combinata in SQL
- 24. Come aggiungere una colonna definita dall'utente con un singolo valore a una query SQL
- 25. Seleziona il valore della colonna se non null altrimenti usa un altro valore di colonna
- 26. Più valori di colonna in una singola colonna come valore separato da virgola
- 27. jQuery concatena la funzione personalizzata
- 28. Imposta il valore massimo della colonna come valore iniziale della sequenza con i tag liquibase
- 29. Come si riempie una colonna con un valore in Panda?
- 30. Inserimento di un singolo valore in una colonna con una clausola where