質問

RailsアプリのJrubyとHSQLDBへの移植に取り組んでいます。私の目標は、顧客サイトで展開するために、単一のJARファイル内にデータベースとサイトを埋め込むことです。私は瓶から非常にうまく機能しているサイトがあり、いくつかの顕著な問題があります。

かなりありふれたActiverCordモデルで以下を行うとき:

@total = SessionLog.count(:id)

次の例外が得られます。

ActivereCord :: StatementInValid(ActivereCord :: ActivereCORDERROR:集約関数またはグループではありません節:org.hsqldb.expression@7be117eb inステートメント[Select count(session_logs.id)as count_id from Session_logs 06 'およびcreated_at <=' 2010-03-09 'およびsession_type =' tunnel_client ')id desc]:

SELECT(session_logs.id)as count_id from session_logs where(created_at> = '2010-02-06'およびcreated_at <= '2010-03-09'およびsession_type = 'tunnel_client')ID descによる注文)

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

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

役に立ちましたか?

解決

おそらく、ActiverCordアダプターでバグを見つけました - activerecord-jdbchsqldb-adapter 私が想定し。

いくつかの非ルビーSQLセッションでSQLを直接実行してみてください。その後、それがどこで間違っているのかを確認し、バグまたは(より良い)を提出することができるかもしれません。

他のヒント

あなたが試すことができます H2データベース, 、それを配線します お気に入り それで. 。から ウィキペディア:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top