Je travaille sur le portage d'une application Rails vers JRuby et HSQLDB. Mon objectif est d'intégrer une base de données et le site dans un seul fichier JAR pour le déploiement sur les sites des clients. J'ai le site fonctionne assez bien du JAR, avec quelques problèmes notables.SQL invalide lors de l'intégration de HSQLDB dans une application Rails
Quand je fais ce qui suit avec un modèle ActiveRecord assez banal:
@total = SessionLog.count(:id)
je reçois l'exception suivante:
ActiveRecord::StatementInvalid (ActiveRecord::ActiveRecordError: Not in aggregate function or group by clause: [email protected] in statement [SELECT count(session_logs.id) AS count_id FROM session_logs WHERE (created_at >= '2010-02-06' AND created_at <= '2010-03-09' AND session_type = 'tunnel_client') ORDER BY id DESC ]:
SELECT count(session_logs.id) AS count_id FROM session_logs WHERE (created_at >= '2010-02-06' AND created_at <= '2010-03-09' AND session_type = 'tunnel_client') ORDER BY id DESC)
Il me semble clair que la déclaration COUNT est la cause du problème dans HSQLDB, mais je ne suis pas sûr de la solution pour résoudre ce problème. SQLite3 et MySQL traitent cette instruction SQL sans problème.
Je suis ouvert à l'utilisation d'une base de données différente de HSQLDB, mais elle doit pouvoir être intégrée dans notre application sur la machine virtuelle Java. C'est l'appel de HSQLDB.