jpa/eclipselink setMaxResults() funktioniert nicht mit MySql?!

dermoritz

Bekanntes Mitglied
ich habe ein ziemlich übles Problem mit Eclipselink2 und MyQql: sobald ich ein setMaxResults(x) auf einem Query aufrufe wird eine DB-Abfrage mit offensichtlichem Syntaxfehler generiert.

Der Fehler der geneiert wird sieht so aus (für x=5):
Code:
SELECT `Id` AS `Id`1, `Spalte2` AS `Spalte2`2, ... FROM Tabelle LIMIT 0, 5
Man beachte die Ziffern 1,2 usw
Die selbe Abfrage ohne setMaxResults sieht so aus:
Code:
SELECT `Id`, `Spalte2`, ... FROM Tabelle
Also ohne 'as' und ohne diese komische Ziffer an jedem Namen.

Übrigens das ganze funktioniert einwandfrei mit einer Persistence Unit die Derby embedded benutzt. Die Settings sind bis auf logging und "<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />" für den Derby Treiber identisch.
Was mache ich falsch? Ich kann mir nicht vorstellen das so ein schwerer Bug in einem 2.0 Release existiert?!
 
M

maki

Gast
Die Settings sind bis auf logging und "<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />" für den Derby Treiber identisch.
Du hast aber schon unterschiedliche Platformen festgelegt? (heisst dialect bei Hibernate).
 

dermoritz

Bekanntes Mitglied
@SirWayne:
das as stört mich nicht aber die Ziffer am Ende stört (...syntax error ...near '1'...) - und DEr "bug" ist eben, dass Eclipselink invaliden SQL-Code generiert und ich nicht weiß warum.
Und theoretisch kann man sich natürlich auch die Frage stellen warum, wenn man Limit angibt eine völlig andere SQL-Abfrage generiert wird (eben eine mit 'as') als wenn man ohne limit abfragt.

@maki:
es ist gesetzt
<property name="eclipselink.target-database" value="MySQL" /> Respektive "Derby"
ist es das was du meinst?
 
M

maki

Gast
Ja, meinte ich.

Könnte schon ein Bug sein, so häufig wird MySQL in diesem Umfeld nicht verwendet, behaupte ich mal ;)
 

dermoritz

Bekanntes Mitglied
das es nicht häufig mit jpa verwendet wird musste ich auch schon feststellen. es gibt sehr wenig know how in den foren (auch offizielles eclipslink-forum) für die kombi aus JPA und MySql. Was sind denn gebräuchlichere Kombinationen. Bei Oracle und Derby scheints schonmal mehr zu geben - und dann kommt eh nicx mehr oder?


Aber dieser Bug ist fast schon zu offensichtlich - ein Select-Statement mit setMaxResults sollte fast in jeder JPA -Anwendung vorkommen?!
das Eclipslinkforum is grad down ich werds da mal versuchen und melde mich wieder hier.
 
G

Gast2

Gast
@SirWayne:
das as stört mich nicht aber die Ziffer am Ende stört (...syntax error ...near '1'...) - und DEr "bug" ist eben, dass Eclipselink invaliden SQL-Code generiert und ich nicht weiß warum.
Und theoretisch kann man sich natürlich auch die Frage stellen warum, wenn man Limit angibt eine völlig andere SQL-Abfrage generiert wird (eben eine mit 'as') als wenn man ohne limit abfragt.

oh die letzte ziffer ist mir gar net aufgefallen :oops:...
 
G

Gelöschtes Mitglied 5909

Gast
ich würde mal sagen ein grund mehr kein mysql zu nehmen :D

Spaß bei Seite: Bei Oracle funktioniert des definitiv
 

dermoritz

Bekanntes Mitglied
Problem scheint behoben in Eclipselink 2.1.0!

hab zwar inder der Liste der behobenen Bugs für 2.1 geschaut und nix gefunden, aber probieren ging hier offensichtlich wieder über studieren :-|.

die Syntax ist nun:
Code:
"SELECT `Id` AS a1, `column2` AS a2, ... FROM table LIMIT 0, 5"
 

Ähnliche Java Themen


Oben