将表记录映射到JPA实体

时间:2019-12-28 19:16:16

标签: java jooq

我在两个不同的依赖项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类,如果我没有解决方案,我必须编写自己的模型进行映射。

1 个答案:

答案 0 :(得分:0)

您描述的是jOOQ中的一个已知问题:https://github.com/jOOQ/jOOQ/issues/4586。此外,除非具有@Column批注的字段,否则应进行映射。 @Transient得到正确映射的原因是它具有一个field注释。

暂时,我建议您对链接的GitHub问题进行投票,以使该问题得到关注并可以适当地进行优先级排序。

相关问题