小编Rob*_*gan的帖子

jOOQ NOT NULL 列转换器:如果列不能为空,为什么需要处理 null?

jOOQ 代码生成中,可以将转换器分配给NOT NULL字段,如下所示:

<forcedType>
    <includeTypes>(?i)^varchar\(\d+\)$</includeTypes>
    <userType>String</userType>
    <nullability>NOT_NULL</nullability><!-- Converter applies only to NOT NULL columns! -->
    <converter>StringCaseConverter</converter>
</forcedType>
Run Code Online (Sandbox Code Playgroud)

然后转换器可以像这样实现:

public class StringCaseConverter extends org.jooq.impl.AbstractConverter<String, String> {
    public StringCaseConverter() {
        super(String.class, String.class);
    }

    @Override
    public String from(String databaseObject) {
        return databaseObject.toLowerCase(); // FIXME: this throws NPE if argument is ever null!
    }

    @Override
    public String to(String userObject) {
        return userObject.toUpperCase(); // FIXME: this throws NPE if argument is ever null!
    }
}
Run Code Online (Sandbox Code Playgroud)

在典型场景中,如果只是对具有此类列的表执行标准 CRUD,则databaseObject永远不可能null,因此这样的实现似乎就足够了。 …

converters jooq jooq-codegen

3
推荐指数
1
解决办法
762
查看次数

标签 统计

converters ×1

jooq ×1

jooq-codegen ×1