0

虽然我不是 Ruby 用户,但我真的很喜欢 ActiveRecord 在代码中定义模式的方式,并且能够生成和查询它。我知道这不能在 Java 中完全复制,但我想做一些合理的事情。

我使用 QueryDSL 文档中的以下内容使用 maven 插件从我的 SQL 数据库生成 bean 和元数据:http ://www.querydsl.com/static/querydsl/2.9.0/reference/html/ch02s08 .html#d0e1244

<plugin>
  <groupId>com.mysema.querydsl</groupId>
  <artifactId>querydsl-maven-plugin</artifactId>
  <version>${querydsl.version}</version>
  <configuration>
    <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
    <jdbcUrl>jdbc:mysql://localhost:3306/test</jdbcUrl>         
    <packageName>com.example.schema</packageName>
    <targetFolder>${project.basedir}/src/main/scala</targetFolder>
    <exportBeans>true</exportBeans>             
  </configuration>
  <dependencies>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.16</version>
    </dependency>
      <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-scala</artifactId>
        <version>${querydsl.version}</version>
      </dependency>
  </dependencies>
</plugin>  

现在我已经有了所有这些 bean 和表,并定义了它们的键和外键约束,有没有办法生成 MySQL 命令来重新创建该表的模式?

如果这是不可能的,那么以相互对应的方式分发源和模式的推荐方法是什么?我是否应该只拥有一个空的 MySQL 转储并拥有相应生成 bean 的工具?或者我应该包含生成的源以及要导入 MySQL 的空模式?如果版本不同步,后一个选项似乎可能会出现问题,所以如果有人有任何其他想法,我将不胜感激。

4

1 回答 1

2

一种方法是打包生成的源代码和数据库模式的版本化 DDL/DML 文件。我们已经在一些项目中成功地使用了 DbMaintain

无法从生成的 Querydsl 源中获取模式数据。

于 2012-12-02T09:18:40.390 回答