栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

模式更新后jOOQ生成的类的运行时验证?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模式更新后jOOQ生成的类的运行时验证?

使用org.jooq.meta的jOOQ 3.0解决方案

在即将到来的jOOQ
3.0中,

DatabasemetaData
可以通过新
org.jooq.meta
对象(通过功能请求#1968实现)以“
jOOQ方式”访问JDBC 。该对象提供对这些类型的各种对象的访问:

  • org.jooq.Catalog
  • org.jooq.Schema
  • org.jooq.Table
  • org.jooq.Field
  • org.jooq.DataType

这些可以与您生成的类进行比较,例如

MY_SCHEMA.getTables().equals(create.meta().getTables())

使用JDBC DatabasemetaData的jOOQ 2.x解决方案

上面的解决方案可以手动实现,只需查询即可

Connection.getmetaData()
。当然,还要多做一些工作

查询所有表的技巧

另一个简单的解决方案是查询所有生成的表,如下所示:

List<Table<?>> invalidTables = new ArrayList<>();for (Table<?> table : MY_SCHEMA.getTables()) {    try {        create.selectFrom(table).where(Factory.falseCondition()).fetch();    }    // If table names / column names change, the above query would fail    catch (DataAccessException e) {        invalidTables.add(table);    }}

这个技巧将允许检测增量是否兼容



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号