Hibernate + MySQl - many-to-many - Select geht schief

cham

Erfahrenes Mitglied
Hallo,

ich habe ein mittelschweres problem:

Ich habe 2 Tabellen die vermitteln m:n Beziehung verknüpft sind. (Team & Player). Das ganze wird durch eine Assignmenttabelle verknüpft.

Wenn ich ein neues Team kreiere oder Spiele hinzufüge geht das auch alles gut. Nun mein problem: Bei team.getPlayer() bekomme ich eine exception von MySQL:

Code:
hibernate: select player0_.teamid  as teamid __, player0_.playerid as playerid__, player1_.UUID as UUID0_, player1_.name as name0_, player1_.description as descript3_0_, player1_.last_modified as last_mod4_0_ from teamplayerassignment player0_ inner join PLAYER player1_ on player0_.playerid=player1_.UUID where player0_.teamid =?
- SQL Error: 1064, SQLState: 42000
- Syntax error or access violation message from server: "You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '__, player0_.playerid as playerid__, player1_.UUID as UUID0_, p"

Ich weiss mittlerweile nicht mehr wo ich noch suchen soll. Kann das sein, dass das ein Problem im MySQL Treiber ist ? Andere Beispiele finde ich nicht.

Hier die teile der Mappings:

Code:
<bag name="teams" table="teamplayerassignment" cascade="save-update" lazy="true">
            <key column="playerid "/>
            <many-to-many class="dartscore.hibernate.beans.Team" column="teamid"/> 
        </bag>

<bag name="player" table="teamplayerassignment" cascade="all" lazy="true">
            <key column="teamid "/>
            <many-to-many class="dartscore.hibernate.beans.Player" column="playerid"/> 
        </bag>

Danke im Voraus

cham
 
Da ist ein leerzeichen wo keines hingehört:

Code:
select player0_.teamid  as teamid __, player0_.playerid
                                 ^
Das setzt sich hier aus dem Mapping zusammen:

Code:
<key column="teamid "/>"
                   ^

Wenn du mit hibernate xDoclets arbeitest und daraus die Mappings generieren läßt, dann solltest du dort mal überprüfen, ob da nicht ein Leerzeichen ist. Ansonsten solltest du im Mapping selbst das Leerzeichen entfernen...

dann sollte der Fehler im Select nicht mehr auftreten...

P.S.: bei "playerid" ist es das gleiche Spiel! Leerzeichen im bezeichner sind eigentlich nicht erlaubt! Das gibt immer Probleme!
 
jap danke, in einer langen freitag nacht hab ich es dann auch rausgefunden. War eine Kombination von Leerzeichen zuviel und C&P und Betriebsblindheit.

Trotzdem vielen Dank
 
Zurück