2016-07-18 11 views
0

Ich habe diese Abfrage verwenden und es funktioniert, wie ichWie Postgresql Funktionen in Hibernate

SELECT 
    COUNT(id) as views_per_day, 
    view_date::timestamp::date, 
    extract(dow from view_date::timestamp::date) as day_index 
FROM details 
WHERE view_date > current_date - interval '6' day 
GROUP BY view_date::timestamp::date 
ORDER BY view_date::timestamp::date; 

erwartete ich Hibernate in meinem Projekt verwende, aber ich bin ein Neuling Hibernate. Was ich wissen möchte, ist, wie ich Funktionen wie

können
`extract(dow from view_date::timestamp::date)`, 
`interval '6' day` `view_date::timestamp::date` 

in den Ruhezustand oder ist es eine Möglichkeit, dies als eine rohe SQL ohne Sicherheitslücken zu laufen? Jede Hilfe würde geschätzt werden

+0

versuchen, native Abfragen im Ruhezustand zu schreiben und verwenden Sie eine native Funktion, um die Ergebnisse zu erhalten. Sie können es googeln (Wie sql Native Abfragen in Hibernate schreiben) @Tartar –

+2

Schauen Sie in Verwendung 'createNativeQuery()', die eine rohe SQL-Abfrage ausführen wird. Ich glaube, Sie müssen diesen Weg gehen, da die Postgres-Funktionen, die Sie verwenden möchten, nicht Standard-HQL sind. –

+1

Eine andere Option ist, dies als eine Sicht in der Datenbank zu definieren, so dass Sie sie abfragen können, ohne die Funktionen direkt aufzurufen. – RealSkeptic

Antwort

0

Versuchen Sie, die @Formula -annotation wie here zu verwenden.

@Formula("extract(dow from view_date::timestamp::date)") 
+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/13040525) – theblindprophet

+0

Blinder Prophet, ich verstehe nicht. Die Frage ist klar, keine Notwendigkeit, zu kritisieren oder um Klärung zu bitten. Dies ist eine Antwort! –

0

oder verwenden Sie createNativeQuery() und Sie können Ihre Abfrage verwenden, wie sie ist.

Verwandte Themen