使用jOOQ 3.8.6,我必须实现record mapper以从Record转换为Pojo,因为在获取的记录中有一些UDT。 现在,我想知道如何在从Pojo创建记录时做相反的事情。
public void update(MyTable pojo){
MyTableRecord record = dsl.newRecord(tables.MyTable.MY_TABLE, pojo);
record.store();
}
我有一个
org.jooq.exception.MappingException: An error ocurred when mapping record from class tables.pojos.MyTable
因为
Caused by: org.jooq.exception.DataTypeException: Cannot convert from MyType (class udt.pojos.MyType) to class udt.records.MyTypeRecord
我想我必须将自定义转换器从POJO注册到Record。 有谁知道怎么做?
答案 0 :(得分:1)
你正在寻找从{jOOQ 3.8开始尚未实施的RecordUnmapper
feature (issue #2520)
您至少有这两种可能的解决方法:
RecordMapper
,而应使用Converter
或数据类型Binding
。这些将允许您以两种方式实现转换,它不仅适用于您的POJO,也适用于您的记录DSLContext.newRecord(Table, Object)
答案 1 :(得分:0)
以Google结束。从jOOQ 3.13开始,OP的语句运行良好。
答案 2 :(得分:0)
您可以使用ModelMapper将POJO转换为记录。例如:
ModelMapper modelMapper = new ModelMapper();
WorkerRecord workerRecord = modelMapper.map(worker, WorkerRecord.class);