为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 jOOQ RecordUnmapper?

如何使用 jOOQ RecordUnmapper?

繁花如伊 2022-06-30 18:06:46
我正在尝试实现一个 jOOQRecordUnmapper来调整我稍后将插入/更新的记录。我在下面的尝试,问题是Record无法实例化该类。如何创建Record对象?另外,如何在插入/更新中使用取消映射器?public class TableUnmapper implements RecordUnmapper<Table, Record> {    @Override    public Record unmap(Table t) throws MappingException {        Record r = new Record();  // <-- this line does not compile        r.from(t);        r.set(TABLES.TITLE_FONT_FAMILY, t.getTitleFont().getFontFamily());        return r;    }}
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

Record是接口,所以不能直接创建接口的实例,必须实例化一个实现Record接口的类,如果你使用Jooq代码生成器,你可能已经有了一个TableRecord类,这是你可以使用的类这个目的,


那么 unmapper 应该看起来像:


public class TableUnmapper implements RecordUnmapper<Table, TableRecord> {


    @Override

    public TableRecord unmap(Table t) throws MappingException {


        TableRecord r = new TableRecord(t.getSomeAttribute());


        r.setAttribute(t.getSomeOtherAttribute());


        return r;

    }


}

要使用解映射器:


DSLContext create;

Table table = new Table(/* Whatever Arguments */);

TableUnmapper unmapper = new TableRecordUnmapper();


// Insert

create.insertInto(TABLES).set(unmapper.unmap(table));


// update

create.executeUpdate(unmapper.unmap(table));


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信