JPA/Hibernate for DDL



任何等效于JPA/Hibernate(更像DML)但处于DDL级别的Java库/框架,例如CREATE TABLE、ALTER TABLE,适用于

  1. 在运行时动态生成DDL脚本
  2. 无字符串编码,如jOOQ或QueryDSL
  3. 处理中列出的数据库差异https://stackoverflow.com/a/217230/418439.

听起来你在寻找这样的东西:

  • http://flywaydb.org/
  • http://www.liquibase.org/

第一个有一个Java API,所以您可能更喜欢这样。

JOOQ库的作者推荐Liquibase(http://www.liquibase.org/)针对不同数据库上的可移植DDL抽象:http://blog.jooq.org/2011/10/24/liquibase-for-db-migrations/

关于第3)点,Liquibase还支持通用数据类型:

"为了帮助使脚本与数据库独立,以下"通用"数据类型将转换为正确的数据库实现:*BOOLEAN*CURRENCY*UUID*CLOB*BLOB*DATE*DATETIME*TIME*BIGINT

此外,指定java.sql.Types.*类型也将转换为正确的类型。如果需要,可以包括精度。以下是一些示例:*java.sql.Types.TIMESTAMP*java.sql.Types.VARCHAR(255)"

来源:http://www.liquibase.org/documentation/column.html

最新更新