如何使用 jOOQ RecordUnmapper?

我正在尝试实现一个 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;

    }


}


繁花如伊
浏览 83回答 1
1回答

素胚勾勒不出你

Record是接口,所以不能直接创建接口的实例,必须实例化一个实现Record接口的类,如果你使用Jooq代码生成器,你可能已经有了一个TableRecord类,这是你可以使用的类这个目的,那么 unmapper 应该看起来像:public class TableUnmapper implements RecordUnmapper<Table, TableRecord> {&nbsp; &nbsp; @Override&nbsp; &nbsp; public TableRecord unmap(Table t) throws MappingException {&nbsp; &nbsp; &nbsp; &nbsp; TableRecord r = new TableRecord(t.getSomeAttribute());&nbsp; &nbsp; &nbsp; &nbsp; r.setAttribute(t.getSomeOtherAttribute());&nbsp; &nbsp; &nbsp; &nbsp; return r;&nbsp; &nbsp; }}要使用解映射器:DSLContext create;Table table = new Table(/* Whatever Arguments */);TableUnmapper unmapper = new TableRecordUnmapper();// Insertcreate.insertInto(TABLES).set(unmapper.unmap(table));// updatecreate.executeUpdate(unmapper.unmap(table));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java