我在两个不同的依赖项DependencyA和DependencyB中有两个类TableNameA和TableNameB,它们分别表示表table_name_a和table_name_b,并具有以下所述的字段。
TableName:table_name_a 字段名称:field_name_p,field_name_q,field。
TableName:table_name_b 字段名称:field_name_r,field_name_s。
@Entity
@Table(name = "table_name_a")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableNameA{
@Id
private int field;
private int fieldNameP;
private int fieldNameQ;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableNameB{
@Column(name = "field_name_r")
private int fieldNameR;
@Column(name = "field_name_s")
private int fieldNameS;
}
log.info(dslContext.selectFrom(TableNameA.TABLE_NAME_A)
.limit(4)
.fetch()
.into(dependencyA.TableNameA.class).toString());
log.info(dslContext.selectFrom(TableNameB.TABLE_NAME_B)
.limit(4)
.fetch()
.into(dependencyB.TableNameB.class).toString());
我如上所述使用jooq,我想将table_name_a和table_name_b记录映射到TableNameA和TableNameB类中,但是在TableNameA的对象中,仅正确映射了“字段”成员变量,而其余成员变量的fieldNameP,fieldNameP映射到null,而不是在表的列中对应的值,并且TableNameB已正确映射。
这里的问题是成员变量的fieldNameP,fieldNameP映射为null而不是表列中的对应值
还有一个条件,我不能编辑TableNameA和TableNameB类,如果我没有解决方案,我必须编写自己的模型进行映射。
答案 0 :(得分:0)
您描述的是jOOQ中的一个已知问题:https://github.com/jOOQ/jOOQ/issues/4586。此外,除非具有@Column
批注的字段,否则应进行映射。 @Transient
得到正确映射的原因是它具有一个field
注释。
暂时,我建议您对链接的GitHub问题进行投票,以使该问题得到关注并可以适当地进行优先级排序。