gpt4 book ai didi

ruby-on-rails - 在 ActiveRecord 中使用 OrientDB 的 JDBC 驱动程序

转载 作者:行者123 更新时间:2023-12-04 06:09:26 24 4
gpt4 key购买 nike

在 ActiveRecord 中使用 OrientDB 的 JDBC 驱动程序的正确方法是什么?

我正在尝试将 Rails 3.2 应用程序连接到 OrientDB 1.4。我安装了 gem 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 驱动程序的正确方法是什么?

最佳答案

虽然 activerecord-jdbc-adapter (理论上)支持任何 JDBC 编译器驱动程序,它使用 API 并做出一些假设,这些假设对少数人来说可能不太好。特别是使用不完全兼容的驱动程序,例如 orientdb-jdbc(至少 1.4 版)是。

在这种情况下,AR-JDBC 尝试从 DB 元数据解析支持的类型:http://git.io/s7g47A但自从 metadata.getTypeInfo()返回意外 null而不是实际的 ResulSet对象都失败了。这可以通过覆盖 native_database_types 来处理“空”类型来改进。 Ruby 中的方法和/或 AR-JDBC 方面的一些附加代码 - 尽管对于 OrientDB 的“驱动程序”,它仍然可能不足以使其与 AR-JDBC 完全兼容......听起来非常适合 AR-JDBC扩展(假设 OrientDB 可以处理 ActiveRecors/AREL 将生成的 SQL)。

关于ruby-on-rails - 在 ActiveRecord 中使用 OrientDB 的 JDBC 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com