java - JRuby on Rails + 遗留 Java 代码的最佳数据库策略是什么?

标签 java ruby-on-rails database activerecord jruby

我们有一个中型 Java 应用程序需要一些重构。

我们正在考虑迁移到 JRuby on Rails。主要是因为 Ruby on Rails 提供的生产力以及许多将重新实现 Web 逻辑的现有插件。

但是应用程序的很大一部分应该保留在 Java 中,我们不想重写所有的业务逻辑(特别是因为它使用了许多 Java 技术,例如 RMI)。

我们重构的一个关键点是净化我们的数据库管理,它目前是手工编码的 SQL 操作和一些存储在 db4o 中的对象的混合体。

我们可以从 JRuby 调用任何遗留的 Java 代码。太棒了!

但是许多 Ruby on Rails 插件假定使用 ActiveRecord 来管理数据库。 从 Java 访问 ActiveRecord 数据似乎很重要。

在 JRuby on Rails 和遗留 Java 代码之间管理数据库的最佳策略是什么?

  • 我们可以将 db4o 用于所有事情,但会失去一些 Ruby on Rails 插件的优势,并且需要在 Ruby 端“手动”管理对象
  • 我们可以对所有内容使用 ActiveRecord,并在 Java 端定义某种冗余映射。哪个是最佳策略?
  • 我们将使用 Java ORM 技术(Hibernate、Cayenne?),然后将模型映射到 ActiveRecord 中。这个想法与之前的想法相比如何?
  • 我们可以使用 Jruby 1.4 become_java 做一些魔术吗?

你怎么看?

最佳答案

JRuby 是一种很棒的语言,但它实际上是运行在 Java 虚拟机上的 Ruby。可以将遗留 Java 代码集成到其中,但它不能很好地融入核心语言。

如果您对具有可靠 Web 框架的新型动态语言感兴趣,我建议您查看 Groovyhttp://grails.org/ . Groovy 是建立在 JVM 之上的。您的遗留类可以是应用程序中的一等公民。我认为这会更容易迁移到新的东西,因为你可以重用你拥有的东西,重写你需要的部分。

关于java - JRuby on Rails + 遗留 Java 代码的最佳数据库策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138286/

相关文章:

java - 在 spring 中使用 jdbctemplate 触发 Sequence.nextval 查询

SQL Postgres 使引用无效 ID 的行无效

python - 将 pandas 数据帧写入 AWS athena 数据库

ruby-on-rails - 在 Rails 用户模型中设置 default_address

ruby-on-rails - 如何在 Ruby on Rails 中拥有插件架构?

java - Lucene 4.10.3 数字日期范围查询未返回预期结果

java - JPA+Hibernate - 实体关系中的循环 - 级联策略

ruby-on-rails - 了解 Ruby 中的 tap

java - Togglz 功能开关 - 如何为具有相同逻辑的多个 Id/parms 实现 ActivationStategy(组合策略中的逻辑相同)

java - mvn依赖:tree prompt invalid JAVA_HOME directory error