Wie schreibe ich JPA-Abfrage mit boolescher Bedingung

8

In meinem Projekt verwende ich JPA 2.0 mit Eclipselink-Implementierung, und ich habe folgendes Problem:

Ich habe Entity mit boolescher Spalte definiert:

%Vor%

Ich möchte eine Abfrage erstellen, die alle aktiven Benutzer zurückgibt, etwa so:

Wählen Sie u aus Benutzer u, wo u.active = TRUE;

Aber wenn ich diese Abfrage verwende, habe ich eine Ausnahme, dass boolean nicht in Short umgewandelt werden kann (die Spalte in der Datenbank wird als smallint gespeichert). Gibt es eine korrekte Möglichkeit, diese Abfrage zu schreiben?

Danke

    
Rado Skrib 06.06.2011, 11:02
quelle

7 Antworten

8

Verwenden Sie das folgende Formular:

SELECT e FROM Employee e WHERE e.active = TRUE

Weitere Informationen finden Sie in den Dokumenten .

    
YUIOP QWERT 07.12.2015 09:17
quelle
1

Ich hatte auch dieses Problem (PostgreSQL + Eclipselink) und habe es mit den Annotationen @TypeConverter und @Convert arbeiten lassen.

%Vor%     
lazlev 02.12.2015 16:07
quelle
0

Ich verwende EclipseLink als JPA-Provider und eine MySQL-Datenbank. Bei dieser Konfiguration wird 1 für True und 0 für False verwendet.

    
punkyduck 30.04.2012 14:57
quelle
0

Sie können @TypeConverter (dataType = Integer.class)

verwenden     
James 01.05.2012 13:34
quelle
0

Sie können eine Abfrage schreiben wie:

@Query ("WÄHLEN Sie u von Benutzer u-Reihenfolge durch u.active");

Es werden zuerst inaktive Benutzer angezeigt. Wenn Sie den aktiven Benutzer zuerst sehen möchten, wie:

@Query ("WÄHLEN Sie u aus dem Benutzer ordnet durch u.active desc");

    
Rahul Chauhan 10.08.2017 06:53
quelle
0
%Vor%

in der obigen Abfrage, wie TRUE / FALSE als Benutzerparameter übergeben? Wenn ich es unten versuche, gibt es nicht die Werte wie bei der Benutzereingabe zurück (TRUE / FALSE).

Hier ist die benannte Abfrage

%Vor%

hier rufe ich die obige Namensabfrage

auf %Vor%     
user2555212 24.10.2017 06:32
quelle
-3

TRUE ist ein spezielles Schlüsselwort. probiere

aus
  

wähle u aus Benutzer u, wo u.active IST WAHR ist;

    
minibi 19.06.2014 11:57
quelle

Tags und Links