/ ActiveRecordでのOrientDBのJDBCドライバの使用 - ruby​​-on-rails、activerecord、jdbc、jruby、orientdb

OrientDBのJDBCドライバをActiveRecordで使用する - ルビー・オン・レール、activerecord、jdbc、jruby、orientdb

ActiveRecordでOrientDBのJDBCドライバを使用する適切な方法は何ですか?

Rails 3.2アプリケーションをOrientDB 1.4に接続しようとしています。宝石を取り付けました activerecord-jdbc-adapterそして、 database.yml 次のように:

development:
adapter: jdbc
username: admin
password: admin
driver:   com.orientechnologies.orient.jdbc.OrientJdbcDriver
url:      jdbc:orient:local:db/test_db2

私は以下のようにOrientDBのJDBCドライバをロードします。

# in config/application.rb:
require "/home/myuser/jars/orientdb-jdbc-1.4.0-all.jar"

次の例外がアプリケーションの起動時にスローされています( rails s):

java.lang.NullPointerException
at arjdbc.jdbc.RubyJdbcConnection.unmarshalResult(RubyJdbcConnection.java:1187)
at arjdbc.jdbc.RubyJdbcConnection.set_native_database_types(RubyJdbcConnection.java:537)
at arjdbc.jdbc.RubyJdbcConnection$INVOKER$i$0$0$set_native_database_types.call(RubyJdbcConnection$INVOKER$i$0$0$set_native_database_types.gen)
...

設定に足りないものはありますか? ActiveRecordでOrientDBのJDBCドライバを使用する適切な方法は何ですか?

回答:

回答№1は1

activerecord-jdbc-adapter (理論的には)あらゆるJDBC対応ドライバをサポートします。それはAPIを使用し、少数の人にとってはうまくいかないかもしれないいくつかの仮定をします。特に以下のような完全に準拠していないドライバを使って orientdb-jdbc (少なくともバージョン1.4)です。

この場合、AR-JDBCはDBメタデータからサポートされている型を解決しようとします。 http://git.io/s7g47A しかしそれ以来 metadata.getTypeInfo() 予期せぬ結果を返す null 実際の代わりに ResulSet オブジェクトはすべてひどく失敗します。これをオーバーライドすることで "null"型を扱うことで改善されるかもしれません native_database_types Rubyのmethodや追加のコードAR-JDBC側 - OrientDBの「ドライバ」にとっては、AR-JDBCで完全に機能させるにはまだ十分ではないかもしれません... AR-JDBC拡張機能にはかなり適しているように思えます(OrientDBが処理できると仮定して) ActiveRecors / ARELが生成するSQL)