可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16

只读列行为

适用于 ❌ 开源版   ✅ Express 版   ✅ 专业版   ✅ 企业版

当使用 只读列 时,默认情况下,任何尝试 插入更新 的值都会被忽略。 以下 Settings 允许覆盖和只读列的默认行为

这些标志中的每一个都是 org.jooq.conf.WriteIfReadonly 类型,具有以下允许的状态

  • WRITE: 写入到列,就像它不是只读的一样。 这实际上关闭了该功能。
  • IGNORE: 在相关语句中忽略该列。 这是默认设置。
  • THROW: 如果该列包含在相关的 DML 语句中,则抛出异常。

默认行为 IGNORE 在将 POJO 数据加载到 org.jooq.UpdatableRecord 并存储它时,同时忽略 IDENTITY 列、计算列、合成列(例如 合成 ROWID)等,特别有用。

示例配置

Settings settings = new Settings()
    .withReadonlyInsert(WriteIfReadonly.THROW)                 // Defaults to IGNORE
    .withReadonlyUpdate(WriteIfReadonly.THROW)                 // Defaults to IGNORE
    .withReadonlyTableRecordInsert(WriteIfReadonly.THROW)      // Defaults to IGNORE
    .withReadonlyUpdatableRecordUpdate(WriteIfReadonly.THROW); // Defaults to IGNORE

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的反馈!

The jOOQ Logo