Problem mit EJB QL und BigDecimal ?

Hi,

hänge eine ganze weile an dem problem das ich vergeblich versuche eine datenbankabfrage zu meistern. Ich habe in der DB mehrere Felder. 10 sind in der Anwendung Strings (Name, Vorname, ...) und 5 sind BigDecimal (Mitgliedsnr, ...).
Meine finder-Methode sieht so aus:
Code:
findByUser(java.lang.String name, java.lang.String vorname, java.lang.String stadt, java.math.BigDecimal mitgliedsnr);
Erstellen ich nun eine finder Methode mit den zugehörigen Parametern die nur String Typen abfrägt klappt alles ohne Probleme.
Code:
SELECT Object(o) 
FROM Mitglieder o 
WHERE o.name = ?1 AND o.vorname = ?2 AND o.stadt = ?3
Versuche ich allerdings BigDecimal Typen abzufragen bekomme ein Fehler. So sieht meine Abfrage aus:
Code:
SELECT Object(o) 
FROM Mitglieder o 
WHERE o.name = ?1 AND o.vorname = ?2 AND o.mitgliedsnr= ?4
Für ein Test habe ich eine neue finder Methode erstellt mit nur einem Parameter die nur die nach der mitgliedsnr abfrägt. Aber auch das funktioniert nicht.
Code:
findByMitgliedsnr(java.math.BigDecimal mitgliedsnr);
Code:
SELECT Object(o) 
FROM Mitglieder o 
WHERE o.mitgliedsnr = ?1

Kennt von euch jemand das Problem :confused: ?

Gruß
 
Hallo!

Hast du schon mal eine ID (Mitgliedsnr) gesehen die eine Fließkommazahl darstellt(BigDECIMAL)? ;-) Reicht da nicht einfach Integer oder meintewegen auch noch ein Long?

Gruß Tom
 
Da hast du vielleicht nicht unrecht :) . Das trifft aber nicht alle Felder zu. Im Feld Betrag habe ich Beispielsweise Fließkommazahlen. Wenn du jetzt zu meiner Frage statt mitgliedsnr, das feld betrag nehmen würdest hätte ich wieder das gleiche Problem.

Aber den Typ long habe ich ebenfalls schon probiert und dieser erzeugt ebenfalls ein EJB Compiler Error.

Ich kann mir nicht vorstellen das man kein BigDecimla Typen definieren kann wenn die Entwicklungsumgebung einem diese sogar anbietet.

Oder etwa doch ?
 

Neue Beiträge

Zurück