0

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 (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 )

COUNT ステートメントが HSQLDB で問題を引き起こしていることは明らかですが、これを修正するための解決策がわかりません。SQLite3 と MySQL はどちらも、この SQL ステートメントを問題なく処理します。

私は HSQLDB 以外の別のデータベースを使用することにオープンですが、JVM 上のアプリケーションに埋め込むことができる必要があります。それがHSQLDBの魅力です。

4

2 に答える 2

1

H2 Databaseを試すことができますウィキペディアから:

データベース エンジンは Thomas Mueller によって書かれました。また、Java データベース エンジン Hypersonic SQL [1] も開発しました。2001 年に Hypersonic SQL は停止され、HSQLDB Group が形成され、Hypersonic SQL コードの作業を継続しました。H2 という名前は Hypersonic 2 の略ですが、H2 は Hypersonic SQL または HSQLDB とコードを共有していません。H2はゼロから構築されています。

于 2010-03-09T09:28:25.250 に答える