【发布时间】:2015-01-20 22:23:14
【问题描述】:
我正在评估 JOOQ 是否用于仍在开发中的新系统。当数据库与应用程序一起开发时,我想避免代码生成,并且只是充当该应用程序的持久存储的角色。因此,数据库模式定义应该由 Java 代码驱动(java 中的表定义)。
JOOQ 是否适合上述用例?是否有用于模式定义的 java DSL?
【问题讨论】:
我正在评估 JOOQ 是否用于仍在开发中的新系统。当数据库与应用程序一起开发时,我想避免代码生成,并且只是充当该应用程序的持久存储的角色。因此,数据库模式定义应该由 Java 代码驱动(java 中的表定义)。
JOOQ 是否适合上述用例?是否有用于模式定义的 java DSL?
【问题讨论】:
JOOQ 是否适合上述用例?
是的,许多 jOOQ 用户只使用运行时库而不使用代码生成器。例子可见getting started guide。
是否有用于模式定义的 java DSL?
jOOQ 将 JDBC 的 DatabaseMetaData 包装在 org.jooq.Meta 中,您可以通过 DSLContext.meta() 访问它。从Meta 返回的对象又是 jOOQ 的 Schema、Table、Field 对象,您可以将它们与 API 的其余部分一起使用。
另一方面,Vlad Mihalcea 写了这篇关于how to use the jOOQ code generator in a Hibernate project, where the database is driven by the JPA-annotated Java model 的非常有趣的博文。也许这对你也有用。
【讨论】: