Bij de migratie van een applicatie van MySQL naar Oracle ben ik op een vreemd probleem gestuit. Een voor hibernate valide GROUP BY expressie wordt verkeerd naar SQL vertaald, waardoor Oracle het niet meer snapt.
Voorbeeld:
wordt:
Alle kolommen anders dan id komen erbij in de SELECT, terwijl de GROUP BY alleen het id in zich heeft. Logisch dat Oracle hier problemen mee heeft natuurlijk, dit is geen valide SQL.
Hoe krijg ik Hibernate aan zijn verstand dat hij juiste queries uitpoept?
Ik gebruik de volgende versies:
- Hibernate 3.0.5
- Oracle 10.2.0.1.0
Voorbeeld:
code:
1
2
3
| SELECT object FROM object GROUP BY object |
wordt:
code:
1
2
3
| SELECT object.id, object.col_1, ... , object.col_n FROM object GROUP BY object.id |
Alle kolommen anders dan id komen erbij in de SELECT, terwijl de GROUP BY alleen het id in zich heeft. Logisch dat Oracle hier problemen mee heeft natuurlijk, dit is geen valide SQL.
Hoe krijg ik Hibernate aan zijn verstand dat hij juiste queries uitpoept?
Ik gebruik de volgende versies:
- Hibernate 3.0.5
- Oracle 10.2.0.1.0