Spring Roo:包装的数据库驱动程序可用于jpa setup命令吗?

时间:2014-03-30 15:02:00

标签: java spring-roo osgi-bundle

我使用Roo 1.2.5的addon create wrapper命令包装了一个现有的官方jdbc驱动程序(不,它不是Oracle DBMS)。 我已使用osgi start启动它,osgi ps将其列为正在运行。

我想将其用于database reverse engineer分析。但据我所知,这意味着我需要使用jpa setup设置我的Roo项目,并且我看不到使用此命令的此驱动程序。

如何让我的包装驱动程序可用于jpa设置?如何在jpa setup --database [the database reference, here]的命令行中引用它?

此处提供的选项包括DATABASE_DOT_COM,DB2_400,DB2_EXPRESS_C,DERBY_CLIENT,DERBY_EMBEDDED,FIREBIRD,GOOGLE_APP_ENGINE,H2_IN_MEMORY,HYPERSONIC_IN_MEMORY,HYPERSONIC_PERSISTENT,MSSQL,MYSQL,ORACLE,POSTGRES和SYBASE。

目前我在这里可以看到的解决这个问题的唯一方法是安装jpa安装耗材的任何选择,然后手动更改DBMS详细信息,但在我看来还有另一种官方方式。

在我读过的关于这个的文章中,主要是关于Oracle和DBRE,这个重要的步骤被忽略了,就像它不言自明一样。我不是新的Roo用户,但是如何安装Roo尚未提供的第三方数据库驱动程序,实际上看起来确实很模糊。

关心如何有效地帮助我和未来的用户?如果你不知道究竟是怎么回事,那么一些想法怎么样?

更新* 虽然我已经取消了这个想法,因为我突然可以自由选择我自己的DBMS,但我并不需要它。尽管如此,知道如何使用未列出的数据库设置JPA仍然会很好。

另一方面,如果Roo建议的选项列表实际上是提供商支持的DBMS的完整列表,那么当然这个知识没有实际意义,除非在我的情况下提供商的新支持之间有一段时间 - Hibernate - 以及现有的Roo版本。

1 个答案:

答案 0 :(得分:1)

您必须考虑两个运行时环境:

  1. 应用程序运行时:您只需提供连接Oracle的信息。您不需要任何包装器,只需要maven本地存储库中的Oracle JDBC驱动程序jar。
  2. Roo运行时:Roo在OSGi环境中运行,需要将Oracle JDBC封装到OSGi信封中,因此可以由Roo DBRE加载项加载和使用它并连接到DB。
  3. 因此,您必须按照以下步骤在项目上运行DBRE:

    1. 以标准方式配置您的jpa连接(使用jpa setup --database ORACLE ....
    2. 对生成的包装器使用osgi start --file命令以在OSGi环境中加载Oracle JDBC
    3. 使用database introspectdatabase reverse engineer(此突击队使用步骤1中设置的连接配置)