Я работаю над портированием приложения Rails на JRuby и HSQLDB. Моя цель - встроить базу данных и сайт в один файл JAR для развертывания на сайтах клиентов. У меня довольно хорошо работает сайт из JAR, с несколькими заметными проблемами.
Когда я делаю следующее с довольно обыденной моделью ActiveRecord:
@total = SessionLog.count(:id)
Я получаю следующее исключение:
ActiveRecord :: StatementInvalid (ActiveRecord :: ActiveRecordError: Нет
в агрегатной функции или группе по предложению: org.hsqldb.Expression@7be117eb
в операторе [SELECT count (session_logs.id) AS count_id
FROM session_logs WHERE (creation_at> = '2010-02-06' И созданный_at <=
'2010-03-09' AND session_type = 'tunnel_client') ORDER BY id IDC]: </p>
SELECT count (session_logs.id) AS count_id FROM session_logs WHERE
(созданный_ат> = '2010-02-06' И созданный_ат <= '2010-03-09' И
session_type = 'tunnel_client') ORDER BY id IDC) </p>
Мне кажется ясным, что оператор COUNT вызывает проблему в HSQLDB, но я не уверен, что решение - это исправить. SQLite3 и MySQL обрабатывают этот оператор SQL без проблем.
Я открыт для использования другой базы данных, отличной от HSQLDB, но ее необходимо встраивать в наше приложение на JVM. Это обращение HSQLDB.